440 likes | 572 Views
理解编程概念 处理 Windows 窗体 处理控件 代码风格. 窗体概述. 理解编程概念. 1 理解编程概念. 事件驱动编程. 设计对象的蓝图:类. 事件. 方法. 对象. 属性. 事件驱动编程. 1 .1 事件驱动编程. Sub Button1_Click (…) ‘ 添加事件代码 End Sub. 对象. 对象是类的实例 类比: 基于设计图的房子. 示例. 在 VB 项目中每一个窗体是一个对象 每一个窗体是一个 Form 类的实例. 设计对象的蓝图:类. 1 .2 设计对象的蓝图:类. 类. 类是对象抽象化的表示形式
E N D
理解编程概念 处理 Windows 窗体 处理控件 代码风格 窗体概述
理解编程概念 1理解编程概念 事件驱动编程 设计对象的蓝图:类 事件 方法 对象 属性
事件驱动编程 1.1 事件驱动编程 Sub Button1_Click (…) ‘添加事件代码 End Sub
对象 对象是类的实例 类比: 基于设计图的房子 示例 在 VB 项目中每一个窗体是一个对象 每一个窗体是一个 Form 类的实例 设计对象的蓝图:类 1.2 设计对象的蓝图:类 类 类是对象抽象化的表示形式 类比:设计图
Form1 属性、方法和事件 1.3 属性、方法和事件 属性 大小 文本 音量 重低音 方法 关闭 隐藏 调谐 事件 单击 电量低
课堂练习 属性、方法和事件 1.4 课堂练习 属性、方法和事件 对于下面的每一个对象,给出相关的属性、方法和事件: • 门 • 汽车 • 示例:电话 • 属性:形状,颜色,音量 • 方法:响铃,改变音量 • 事件:音量已改变,拨号已完成
理解编程概念 处理 Windows 窗体 处理控件 代码风格 创建用户界面 窗体概述 编写代码 使用 Visual Studio .NET 调试和部署 访问数据
处理 Windows 窗体 2 处理 Windows 窗体 • 创建窗体 • 设置窗体属性 • 调用方法 • 处理窗体事件 • 课堂练习 为窗体事件添写代码 • 模态和非模态窗体 • 管理多个窗体
创建窗体 2.1 创建窗体
设置窗体属性 2.2 设置窗体属性 窗体名 “按分类排序” 按钮 “按字母排序”按钮 “描述”窗格 如果改变 Form1 的 Name 属性,则需要重新设置项目的启动对象,否则项目将不能正常启动
调用方法 3 调用方法 方法 Sub Form1_Click Me.CenterToScreen( ) End Sub
处理窗体事件 4处理窗体事件 类名 列表框 事件
新建一个 Windows 应用程序 类型的应用程序 使用代码编辑器打开窗体 创建了 Form1_Click 事件 处理程序的框架 在事件处理程序中添加代码 运行应用程序 课堂练习 为窗体事件添写代码 2.5 课堂练习 为窗体事件添写代码
Main Form 是 否 Modal Form 退出前保存文件吗? 模态和非模态窗体 2.6 模态和非模态窗体
打开 关闭 Form2 Form2 管理多个窗体 2.7 管理多个窗体 Form1
理解编程概念 处理 Windows 窗体 处理控件 代码风格 窗体概述
处理控件 3处理控件 • 向窗体添加控件 • 设置控件属性 • 为控件事件添加代码 • 使用 MessageBox 函数 • 课堂练习 创建一个消息框
向窗体添加控件 3.1 向窗体添加控件
设置控件属性 3.2 设置控件属性 为多个控件设置属性 设置控件的属性以支持辅助功能
为控件事件添加代码 3.3 为控件事件添加代码
使用 MessageBox 函数 3.4 使用 MessageBox 函数 标题 图标 显示内容 按钮 默认按钮 MessageBox.Show(显示内容,按钮+图标,标题 )
课堂练习 创建一个消息框 3.5 课堂练习 创建一个消息框 新建一个 Windows 应用程序类型 的应用程序 向缺省窗体添加控件 设置窗体和控件的属性 创建 Button1_Click 事件处理程序 运行应用程序
理解编程概念 处理 Windows 窗体 处理控件 代码风格 窗体概述
代码风格 4代码风格 • 命名约定 • 设置代码格式和编写文档
OpenButton True BADSTYLE _poorstyle BestStyle 命名约定 4.1 命名约定 • 命名规则 • 元素名称必须以字母或者下划线 ( _ ) 开头 • 元素名称中只能包含字母字符、数字和下划线 • 元素名称如果以下划线开头,其中至少要有一个字母字符或者数字字符 • 元素名称不能与保留的关键字相同 X Answer42 42Answer • 命名建议 • 命名规范:用 PascalCasing 或 camelCasing命名规范,依赖于要命名的元素 • 结构:对象使用名词来命名,方法使用动词来命名 • 单词选择:在各个代码段中都要保持一致
设置代码格式和编写文档 4.2 设置代码格式和编写文档 • 缩进代码 • 行继续符与字符串连接符 • 代码注释 Sub Button1_Click Me.Close End Sub MessageBox.Show("User Name = " & UserName.Text & _ ", Password = " & Password.Text) 'Make CalculationForm visible Dim CalculationForm as new Form2( ) CalculationForm.Show( )
常用属性 • AutoScale 获取或设置一个值,表示窗体是否调整其大小以适合该窗体上使用的字体高度,以及是否缩放其控件。 • AutoScroll 窗体是否实现自动滚动。 • Location 属性 获取或设置该控件的左上角相对于其容器的左上角的坐标。
主要事件 • Click • Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click • End Sub • DoubleClick
主要事件 • Private Sub Frmlog_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click • TextBox1.Text = "用户单击了窗体!" • End Sub • Private Sub Frmlog_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.DoubleClick • TextBox1.Text = "用户双击了窗体!" • End Sub
主要事件 • 鼠标事件 MouseUp MouseDown MouseMove
MouseUp事件的参数 • Private Sub Frmlog_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp • e:为一结构变量(自定义类型) • e.Button,整型,获取所按下的鼠标键 • 0 未按任何键,1,按下左键,2,按下右键 • e.X、e.Y 获取鼠标坐标
示例 Private Sub Frmlog_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp TextBox1.Text = "用户抬起了鼠标键!" End Sub Private Sub Frmlog_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown TextBox1.Text = "用户按下了鼠标键!" End Sub
MouseMove Private Sub Frmlog_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Dim x, y As Integer x = e.X y = e.Y TextBox1.Text = "鼠标的X方向值为:" & Str(x) & ";鼠标的Y方向值为:" & Str(y) End Sub
键盘事件KeyPress • 返回e.KeyChar()参数,按键的ASCII编码值。 • 用处:获得用户的按键。 Private Sub frmKeypress_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
键盘事件KeyPress举例 Private Sub frmKeypress_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress Me.Label1.Text = "您按下的键是:" & e.KeyChar() Me.Label2.Text = "您按下的键的ASCII码是:" & Str(Asc(e.KeyChar())) End Sub
判断是否按下了回车键 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar() = Microsoft.VisualBasic.ChrW(13) Then ‘处理代码 End If End Sub
键盘事件KeyDown ,KeyUp • 返回e结构体。包括4 个常用的变量, • e.shift,, e.Alt,e.Ctr, • e.KeyValue 返回用户安歇的键值,是一个整型数据。
键盘事件KeyDown ,KeyUp Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown End Sub e结构:
其他窗体事件 • Load • Activated • Closing • Closed • BackColorChanged • GotFocus • LostFocus • Move
窗体方法 • Activate 成为活动窗体 • Close 关闭 • Hide 隐藏 • Show 装入内存,并显示 • ShowDialog ‘以对话框方式显示,其他窗体无法获得焦点 • Dispose ‘销毁对象
例如:退出窗体前进行提示: Private Sub frmKeypress_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing Dim msg As Integer msg = MsgBox("是否关闭窗体?", MsgBoxStyle.YesNo) If msg = vbcancel Then 'No e.Cancel = True End If End Sub
VB.NET中的文件 • 1、解决方案文件 • .sln,.suo • 2、项目文件 • .vbproj • 3、Assemblyinfo.vb文件 • 描述程序集和指定版本控制信息 • 4、.vb服务文件 • 5、资源文件 • .resx或.resources文件,公共语言运行库二进制.resources文件
小结 学习完本章后,将能够 • 掌握基本的编程概念,包括事件驱动编程、类、对象、属性、方法和事件 • 使用窗体和控件来创建用户界面 • 在一个应用程序中创建和管理多个窗体 • 使用 MessageBox 函数与用户交互 • 使用 VB 标准命名程序元素、设置代码格式以及编写文档。
实验 创建用户界面 • 练习 创建主窗体