窗体概述 理解编程概念 处理 Windows 窗体 处理控件 代码风格
理解编程概念 1 理解编程概念 事件驱动编程 设计对象的蓝图:类 事件 方法 对象 属性
事件驱动编程 1.1 事件驱动编程 Sub Button1_Click (…) ‘添加事件代码 End Sub
设计对象的蓝图:类 对象 类 示例 类是对象抽象化的表示形式 对象是类的实例 类比:设计图 类比: 基于设计图的房子 1.2 设计对象的蓝图:类 对象是类的实例 类比: 基于设计图的房子 对象 类 类是对象抽象化的表示形式 类比:设计图 在 VB 项目中每一个窗体是一个对象 每一个窗体是一个 Form 类的实例 示例
属性、方法和事件 1.3 属性、方法和事件 Form1 属性 大小 文本 音量 重低音 方法 关闭 隐藏 调谐 事件 单击 电量低
课堂练习 属性、方法和事件 门 汽车 示例:电话 对于下面的每一个对象,给出相关的属 性、方法和事件 : 属性:形状,颜色,音量 课堂练习 属性、方法和事件 1.4 课堂练习 属性、方法和事件 对于下面的每一个对象,给出相关的属 性、方法和事件 : 门 汽车 示例:电话 属性:形状,颜色,音量 方法:响铃,改变音量 事件:音量已改变,拨号已完成
窗体概述 理解编程概念 处理 Windows 窗体 处理控件 代码风格 创建用户界面 编写代码 使用 Visual Studio .NET 访问数据 调试和部署
处理 Windows 窗体 创建窗体 设置窗体属性 调用方法 处理窗体事件 课堂练习 为窗体事件添写代码 模态和非模态窗体 管理多个窗体 课堂练习 为窗体事件添写代码 模态和非模态窗体 管理多个窗体
创建窗体 2.1 创建窗体
设置窗体属性 如果改变 Form1 的 Name 属性,则需要重新设置项目的启动对象,否则项目将不能正常启动 2.2 设置窗体属性 窗体名 “按分类排序” 按钮 “按字母排序”按钮 “描述”窗格 如果改变 Form1 的 Name 属性,则需要重新设置项目的启动对象,否则项目将不能正常启动
调用方法 3 调用方法 方法 Sub Form1_Click Me.CenterToScreen( ) End Sub
处理窗体事件 4 处理窗体事件 类名 列表框 事件
课堂练习 为窗体事件添写代码 新建一个 Windows 应用程序 类型的应用程序 使用代码编辑器打开窗体 课堂练习 为窗体事件添写代码 2.5 课堂练习 为窗体事件添写代码 新建一个 Windows 应用程序 类型的应用程序 使用代码编辑器打开窗体 创建了 Form1_Click 事件 处理程序的框架 在事件处理程序中添加代码 运行应用程序
模态和非模态窗体 2.6 模态和非模态窗体 Main Form Modal Form 退出前保存文件吗? 是 否
管理多个窗体 2.7 管理多个窗体 Form1 打开 Form2 关闭
窗体概述 理解编程概念 处理 Windows 窗体 处理控件 代码风格
处理控件 3 处理控件 向窗体添加控件 设置控件属性 为控件事件添加代码 使用 MessageBox 函数 课堂练习 创建一个消息框
向窗体添加控件 3.1 向窗体添加控件
设置控件属性 3.2 设置控件属性 为多个控件设置属性 设置控件的属性以支持辅助功能
为控件事件添加代码 3.3 为控件事件添加代码
使用 MessageBox 函数 MessageBox.Show(显示内容,按钮+图标,标题 ) 3.4 使用 MessageBox 函数 默认按钮 MessageBox.Show(显示内容,按钮+图标,标题 )
创建 Button1_Click 事件处理程序 课堂练习 创建一个消息框 3.5 课堂练习 创建一个消息框 新建一个 Windows 应用程序类型 的应用程序 向缺省窗体添加控件 设置窗体和控件的属性 创建 Button1_Click 事件处理程序 运行应用程序
窗体概述 理解编程概念 处理 Windows 窗体 处理控件 代码风格
代码风格 4 代码风格 命名约定 设置代码格式和编写文档
命名约定 命名规则 X 元素名称必须以字母或者下划线 ( _ ) 开头 元素名称中只能包含字母字符、数字和下划线 4.1 命名约定 命名规则 元素名称必须以字母或者下划线 ( _ ) 开头 元素名称中只能包含字母字符、数字和下划线 元素名称如果以下划线开头,其中至少要有一个字母字符或者数字字符 元素名称不能与保留的关键字相同 Answer42 42Answer X OpenButton True BADSTYLE _poorstyle BestStyle 命名建议 命名规范:用 PascalCasing 或 camelCasing命名规范,依赖于要命名的元素 结构:对象使用名词来命名,方法使用动词来命名 单词选择:在各个代码段中都要保持一致
设置代码格式和编写文档 缩进代码 行继续符与字符串连接符 代码注释 Sub Button1_Click Me.Close End Sub 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 = "用户双击了窗体!"
主要事件 鼠标事件 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 = "用户按下了鼠标键!"
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
返回e.KeyChar()参数,按键的ASCII编码值。 键盘事件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、解决方案文件 2、项目文件 3、Assemblyinfo.vb文件 4、.vb服务文件 5、资源文件 .sln,.suo 2、项目文件 .vbproj 3、Assemblyinfo.vb文件 描述程序集和指定版本控制信息 4、.vb服务文件 5、资源文件 .resx或.resources文件,公共语言运行库二进制.resources文件
小结 学习完本章后,将能够 掌握基本的编程概念,包括事件驱动编程、类、对象、属性、方法和事件 使用窗体和控件来创建用户界面 在一个应用程序中创建和管理多个窗体 使用 MessageBox 函数与用户交互 使用 VB 标准命名程序元素、设置代码格式以及编写文档。
实验 创建用户界面 练习 创建主窗体