首页 VB程序设计及数据库开发技术 (4)

VB程序设计及数据库开发技术 (4)

举报
开通vip

VB程序设计及数据库开发技术 (4)null第5章 界面设计第5章 界面设计学习目标: 掌握窗体设计 掌握标准控件的应用 掌握多重窗体的设计与应用 掌握响应鼠标与键盘事件 掌握菜单的设计与应用 第5章 界面设计第5章 界面设计 教学内容: 5.1 窗体与控件应用基础 5.2 常用标准控件及应用案例 5.3 多窗体程序的设计与应用 5.4 VB工程管理 5.5 鼠标与键盘事件 5.6 菜单的设计与应用 5.1 应用基础-控件的基本操作5.1 应用...

VB程序设计及数据库开发技术 (4)
null第5章 界面设计第5章 界面设计学习目标: 掌握窗体设计 掌握标准控件的应用 掌握多重窗体的设计与应用 掌握响应鼠标与键盘事件 掌握菜单的设计与应用 第5章 界面设计第5章 界面设计 教学内容: 5.1 窗体与控件应用基础 5.2 常用标准控件及应用案例 5.3 多窗体程序的设计与应用 5.4 VB工程管理 5.5 鼠标与键盘事件 5.6 菜单的设计与应用 5.1 应用基础-控件的基本操作5.1 应用基础-控件的基本操作1. 在窗体上添加控件 单击工具箱中的图标,在窗体上拖放出所需控件 双击工具箱中的图标(窗体中央出现一个缺省大小的控件),根据需要移动控件或更改控件的大小。 2. 选中窗体上的控件 选中一个控件:单击 选中多个控件: Ctrl或Shift+单击 用鼠标拖放出一个矩形框返回目录5.1 应用基础-控件的基本操作5.1 应用基础-控件的基本操作3. 改变控件大小 拖动选中控件四周的8个控制点 修改Width和Height的属性值 4. 删除、移动控件 删除:选中后按Delete键 移动: 拖动选中的控件 修改Top和Left的属性值 返回目录5.1 应用基础-控件的基本操作5.1 应用基础-控件的基本操作5. 复制控件 选中控件→“复制”→“粘贴” 返回目录控件数组由一组相同类型的控件组成,名称(Name属性)、属性和事件过程都相同。 通过Index 属性可区分控件数组中的元素。 如果要从控件数组中撤消一个控件,需改变该控件的Name属性设置,并删除Index属性设置。 5.1 应用基础-窗体和控件的常用属性5.1 应用基础-窗体和控件的常用属性返回目录5.1 应用基础-窗体的属性、事件与方法5.1 应用基础-窗体的属性、事件与方法1. 窗体的属性 除Name、Caption、Font、Enabled、Visible、BackColor、 ForeColor、FillColor属性,常用属性还有: Appearance:设置窗体运行时是否以3D效果显示 BorderStyle:设置窗体的边框样式 ControlBox:设置窗口是否显示控制菜单按钮 Icon:设置窗体最小化时显示的图标 Height/Width:决定窗体的初始大小 Left/Top:根据屏幕的左上角确定窗体的位置 MaxButton/MinButton:是否具有“最大化”/“最小化”按钮 ShowInTaskbar:窗体运行时是否出现在任务栏中 返回目录5.1 应用基础-窗体的属性、事件与方法5.1 应用基础-窗体的属性、事件与方法2. 窗体的常用事件 Load/Unload:装入/卸载 Click:单击 Activate/Deactivate:激活/非激活 Resize:尺寸改变 Initialize:初始化(在Load事件后发生) KeyPress:按键 MouseDown/MouseUp/MouseOver:鼠标按下/移动/松开返回目录 例如,当A窗体变成活动窗体时,A窗体发生Activate事件;当另一个窗体被激活时,A窗体发生Deactivate事件。5.1 应用基础-窗体的属性、事件与方法5.1 应用基础-窗体的属性、事件与方法3. 窗体的常用方法 方法:对象要完成的操作(特殊子程序) 调用格式:[对象名称].<方法名称> Print:打印文本 Show:显示窗体 Hide:隐藏窗体(不是卸载) Cls:清除运行时窗体中生成的图形和文本返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 标准控件由系统提供,又称为内部控件。 1. 命令按钮-1 Caption属性:设置显示在按钮上的文本(标题) 返回目录快捷键作用: Alt+S =单击“开始”按钮 Alt+X =单击“Exit”按钮 5.2 常用标准控件-1 5.2 常用标准控件-1 1. 命令按钮-2 Default属性:设置缺省的命令按钮。若设置为True,按回车键相当于单击该按钮。 Cancel属性 :设置缺省的取消按钮。若设置为True,按Esc键相当于单击该按钮。 Index属性:设置按钮在控件数组中的编号。 命令按钮的默认事件是Click(单击),不支持双击事件。返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 2. 标签 Caption属性:设置在标签控件中显示的文本 Alignment属性:设置标签中文本的对齐方式 (0-左对齐,1-右对齐,2-居中) BackStyle属性:设置标签控件背景是否透明 (0-透明,1-不透明) 返回目录 例,标签“用户名称”和“密码”是透明的标签控件主要用来显示说明文字,因此一般不对其进事件处理。5.2 常用标准控件-1 5.2 常用标准控件-1 3. 文本框 -常用属性 Text:设置文本框中显示的内容 MultiLines:设置是否能输入或显示多行文本 取值True或 False (缺省值) ScrollBars:设置多行文本框中是否出现滚动条 (0-没有,1-水平,2-垂直,3-水平和垂直) Locked:设置是否允许用户编辑文本框中的文本 取值True或 False (缺省值) Passwordchar:设置密码字符 若MultiLine属性为True,则PasswordChar属性无效返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 3. 文本框 -常用事件 Change(默认事件):改变文本框内容时发生 KeyPress:在文本框中按键盘上的键时发生 Lostfocus:文本框失去焦点时发生 Gotfocus:文本框获得焦点时发生 焦点是接收用户鼠标或键盘输入的能力。 4. 框架 可用于对其他控件进行分组 常用属性是Caption,用于设置框架的标题文本 可先画出框架,再将其它控件画到框架中;或者“剪切”框架外的控件,“粘贴”到框架中返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.1] 彩票开奖器 Private Sub Command1_Click(Index As Integer) Command1(Index).Enabled = False '使点击过的按钮不可用 Randomize (Time) Label1(Index).Caption = Int(Rnd * 10) '对应标签显示随机数 Label1(Index).FontSize = "24" Label1(Index).ForeColor = RGB(255, 0, 0) End Sub返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.1] 彩票开奖器 Private Sub Cmd_Redo_Click() '点击ReDo按钮 For i = 0 To 3 Command1(i).Enabled = True Label1(i).Caption = "" Next i End Sub Private Sub Cmd_Exit_Click() '点击Exit按钮 End End Sub返回目录5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.2] 同步显示 Private Sub Text1_Change() Text2.Text = Text1.Text End Sub Private Sub Command1_Click() '重新输入 Text1.Text = "" Text1.SetFocus End Sub返回目录两个文本框: MultiLine设为True ScrollBars设为25.2 常用标准控件-1 5.2 常用标准控件-1 [例5.3] 考生登录 If Len(Txtcode.Text) < 8 Then Lblsm.Caption = "准考证号必须输入,长度8位!" Txtcode.SetFocus ElseIf Len(Txtname.Text) = 0 Then Lblsm.Caption = "考生姓名必须输入" Txtname.SetFocus :Exit Sub ElseIf Len(TxtSeat.Text) = 0 Then Lblsm.Caption = "座位号必须输入" TxtSeat.SetFocus :Exit Sub End If Lblsm.Caption = "" : MsgBox "正确"返回目录 “正确无误”按钮的Click事件响应代码:各项信息均正确输入后弹出一信息框。 5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.3] 考生登录 Private Sub Txtcode_LostFocus() If Len(Txtcode.Text) < 8 Then Lblsm.Caption = "准考证号必须输入,长度8位!" Txtcode.SetFocus ElseIf Not IsNumeric(Txtcode.Text) Then Lblsm.Caption = "准考证号必须是数字!" Txtcode.SetFocus Else Lblsm.Caption = "" End If End Sub返回目录 “准考证号”文本框失去焦点时的事件响应代码:检查是否输入8位数字。 IsNumeric()是判断数字函数 5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.3] 考生登录 Private Sub Txtname_LostFocus() If Len(Txtcode.Text) < 8 Or Not IsNumeric(Txtcode.Text) Then Txtcode.SetFocus ElseIf Len(Txtname.Text) = 0 Then Lblsm.Caption = "考生姓名必须输入!" Txtname.SetFocus Else Lblsm.Caption = "" End If End Sub返回目录 “姓名”文本框失去焦点时的事件响应代码:检查姓名是否输入。 5.2 常用标准控件-1 5.2 常用标准控件-1 [例5.3] 考生登录 Private Sub TxtSeat_LostFocus() If Len(Txtname.Text) = 0 Then Txtname.SetFocus ElseIf Len(TxtSeat.Text) = 0 Then Lblsm.Caption = "座位号必须输入!" TxtSeat.SetFocus ElseIf Not IsNumeric(TxtSeat.Text) Then Lblsm.Caption = "座位号必须是数字" TxtSeat.SetFocus Else Lblsm.Caption = "" End If End Sub返回目录 “座位号”文本框失去焦点时的事件响应代码:检查座位号是否输入,是否是数字。 5.2 常用标准控件-2 5.2 常用标准控件-2 1. 单选按钮 常用属性是Caption和Value。 Value属性表示控件的状态,缺省值为False(未被选中)。 常用事件是Click 缺省时,直接放到窗体上的所有单选按钮自动构成一组。 2. 复选框 常用属性是Caption和Value。 Value属性表示控件的状态:0 - 未被选中(缺省值), 1 - 选定 2 – 灰色 复选框的主要事件也是Click返回目录5.2 常用标准控件-2 5.2 常用标准控件-2 3. 滚动条 和 Value属性:滚动框在滚动条中的当前位置 Max和Min属性: Value的最大值和最小值。 Max的缺省值为32767,Min的缺省值为0 LargeChange和SmallChange: 滚动条的主要事件是: Change:滚动框的位置改变时发生 Scroll:在拖动滚动条上的滚动框时发生 返回目录5.2 常用标准控件-2 5.2 常用标准控件-2 4. 定时器 定时器是应用程序中控制定时发生事件的控件。 常用属性: Enabled:设置定时器是否可用,缺省为True Interval:设置定时器事件之间所间隔的毫秒数, 缺省值为0(Timer控件无效),最大为65535 事件: Timer:以Interval属性指定的时间间隔发生 (Enabled属性设置为True) 注:定时器控件只在设计时出现在窗体上返回目录5.2 常用标准控件-2 5.2 常用标准控件-2 [例5.4] 简易计算器 Private Sub Command1_Click() '计算 a = Val(Text1.Text): b = Val(Text2.Text) If Option1 Then Text3.Text = a + b If Option2 Then Text3.Text = a - b If Option3 Then Text3.Text = a * b If Option4 Then Text3.Text = a / b '思考:b=0怎么办? End Sub Private Sub Command2_Click() '清除 Text1.Text = "" : Text2.Text = "" :Text3.Text = "" End Sub返回目录5.2 常用标准控件-2 5.2 常用标准控件-2 [例5.4] 简易计算器 返回目录设置是否斜体显示设置是否粗体显示5.2 常用标准控件-2 5.2 常用标准控件-2 [例5.5] 求阶乘 返回目录5.2 常用标准控件-2 5.2 常用标准控件-2 [例5.5] 求阶乘 Private Sub Timer1_Timer() n = HScroll1.Value : nj = 1 For i = 1 To n '该循环计算 n! nj = nj * i Next Cls : Form1.FontSize = 18 Label1.Caption = Str(n) + "!=" : Label2.Caption = nj If HScroll1.Value < 20 Then HScroll1.Value = HScroll1.Value + 1 Else HScroll1.Value = 1 End If End Sub 返回目录Private Sub Command1_Click() Timer1.Enabled = True End SubPrivate Sub Command2_Click() Timer1.Enabled = False End Sub5.2 常用标准控件-3 5.2 常用标准控件-3 1. 列表框 常用特定属性 List:项目数组 引用形式:列表框名称.List(index) 第1项的index为0,最后一项的index为ListCount-1 ListCount:项目个数 ListIndex:当前所选项目的索引号 第1项为0,最后一项为ListCount-1 Sorted:是否按字母顺序排序(默认false) 常用事件:Click、DblClick返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 1. 列表框 常用方法 AddItem:将项目添加到列表框。 列表框名称.AddItem item[, index] item:项目的字符串表达式 index:插入新项目的位置 RemoveItem:从列表框中删除项目 列表框名称.RemoveItem index index:指定删除的项目位置序号 Clear:删除列表框中的所有项目 列表框名称.Clear 返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 2. 组合框 组合框=文本框+列表框 常用属性、事件和方法与列表框相同 设置Style属性,可决定组合框的样式(三种): 0:下拉式组合框 (缺省值) 含文本框和下拉式列表 1:简单组合框 含文本框和不能下拉的列表 界面设计时须将控件绘制得大一些) 2 :下拉式列表框 仅允许从下拉式列表中选择项目返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.6] 对列表框中的项目进行添加、删除和统计 设计界面: 姓名文本框:TextXM 显示当前人数的标签:Label2 “添加”按钮:CommandAdd Default属性为True “删除”按钮:CommandDelete Enabled属性为False 列表框:List1 返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.6] 对列表框中的项目进行添加、删除和统计 Private Sub CommandAdd_Click() '单击“添加”按钮 If TextXM.Text <> "" Then List1.AddItem TextXM.Text Label2.Caption = List1.ListCount '显示当前人数 TextXM.Text = "" End If TextXM.SetFocus End Sub 返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.6] 对列表框中的项目进行添加、删除和统计 Private Sub List1_Click() '单击列表框中的项目 CommandDelete.Enabled = True '使“删除”按钮可用 End Sub Private Sub CommandDelete_Click() '单击“删除”按钮 I = List1.ListIndex '获得当前所选项目的索引号 List1.RemoveItem I Label2.Caption = List1.ListCount CommandDelete.Enabled = False End Sub 返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.7] 显示、新增、删除、清空学生记录 设计界面: 学号文本框:Txt_id 姓名文本框:Txt_xm 班级文本框:Txt_bj 学生记录列表框:Lst_data “新增”按钮:Cmd_add Default属性为True “删除”按钮:Cmd_dele “清空”按钮:Cmd_clear 返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.7] 显示、新增、删除、清空学生记录 ' “通用”段声明自定义数据类型及模块级变量 Private Type student id As String * 6 xm As String bj As String End Type Dim stud(50) As student Dim num As Integer Private Sub Form_Load() num = 0 '统计记录数 Cmd_dele.Enabled = False End Sub返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.7] 显示、新增、删除、清空学生记录 Private Sub Cmd_add_Click() '单击“新增”按钮 Lst_data.AddItem Txt_id + Space(5) + Txt_xm + Space(5) + Txt_bj num = num + 1 '定义类型的变量,通过"变量名.成员名"访问变量中的成员 With stud(num) .id = Txt_id.Text .xm = Txt_xm.Text .bj = Txt_bj.Text End With If num = 1 Then Cmd_dele.Enabled = True Txt_id.SetFocus Txt_id = "" : Txt_xm = "" : Txt_bj = "" End Sub返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.7] 显示、新增、删除、清空学生记录 Private Sub Cmd_dele_Click() '单击“删除”按钮 Dim n As Integer Lst_data.RemoveItem Lst_data.ListIndex For n = Lst_data.ListIndex + 1 To num - 1 '移位覆盖 stud(n).id = stud(n + 1).id stud(n).xm = stud(n + 1).xm stud(n).bj = stud(n + 1).bj Next num = num - 1 '记录总数-1 If num = 0 Then Cmd_dele.Enabled = False Txt_id = "" : Txt_xm = "" : Txt_bj = "" End Sub返回目录5.2 常用标准控件-3 5.2 常用标准控件-3 [例5.7] 显示、新增、删除、清空学生记录 Private Sub Cmd_clear_Click() '单击“清空”按钮 Txt_id = "" : Txt_xm = "" : Txt_bj = "" Txt_id.SetFocus End Sub Private Sub Lst_data_Click() '单击列表框项目 Dim n As Integer n = Lst_data.ListIndex With stud(n + 1) Txt_id.Text = .id Txt_xm.Text = .xm Txt_bj.Text = .bj End With End Sub返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 1. 图片框和图像框 (1) 图片框(PictureBox)和图像控件(Image)的异同 都能用来显示图形或图片:位图(.bmp)、图标(.ico)、图元(.wmf)、 JPEG或GIF等 主要区别: 图片框中可以包含其它控件,而图像框不能。 图片框可支持各种图形方法和打印方法,而图像框不能。 图像框比图片框占用的内存少,显示速度快。返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 (2) 将图片加载到窗体、图片框或图像框中 窗体设计时 设置Picture属性 或 “复制”/“剪切”图像→“粘贴” 如果要取消图片,将Picture属性重新设置为(None) 程序代码中 用LoadPicture函数,例如: Form1.Picture = LoadPicture("C:\windows\backgrnd.gif") Form1.Picture = LoadPicture( ) '清除图片 复制其它对象的图片,例如: Picture1.Picture = Image1.Picture 返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 (3) 调整图片大小 图片框:AutoSize属性设置控件是否按装入的图片大小自动调整尺寸,缺省值False。但图元文件(.wmf)例外,AutoSize为False时,装入的图形会自动调整大小以适应图片框。 图像框:Stretch属性为False(缺省值),控件自动调整大小以适应装载的图形的尺寸;Stretch属性为True,则加载的图形自动调整大小以适应控件,即,调整图像框可实现图形的放大和缩小 。 窗体:不随装载的图片大小而自动改变,图片大于窗体的部分将被裁剪掉。 返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 (4) 控件的边框样式 BordeStyle属性:0(无边框)、1(有边框) 图片框:BordeStyle属性缺省值为1 图像框: BordeStyle属性缺省值为0返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 [例5.8] 图片框和图像框应用示例 Image1的属性设置: Stretch为True BordeStyle为1 Height和Width均为1800 '在窗体的通用段声明模块变量: Dim n As Integer 'n记录图片框中的输出项数 Private Sub Form_Load() n = 0 'n赋初值 End Sub返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 '单击“放大”按钮 Private Sub Command1_Click() Image1.Width = Image1.Width * 1.25 Image1.Height = Image1.Height * 1.25 Picture1.Print "放大图片" : n = n + 1 If n = 10 Then Picture1.Cls: n = 0 End Sub '单击“缩小”按钮 Private Sub Command2_Click() Image1.Width = Image1.Width * 0.75 Image1.Height = Image1.Height * 0.75 Picture1.Print "缩小图片" : n = n + 1 If n = 10 Then Picture1.Cls: n = 0 End Sub 返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 Private Sub Command3_Click() '单击“还原”按钮 Picture1.Cls Image1.Height = 1800 Image1.Width = 1800 End Sub返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 2. 直线控件 功能:在窗体、框架或图片框中绘制线条 移动和调整线条大小 设置X1、X2、Y1、Y2属性 其中,X1、Y1-左端点坐标,X2、Y2-右端点坐标 设置线条的颜色和样式 设置BoderColor和BordeStyle属性 注意:若BorderStyle=0,BorderColor属性不起作用 设置线条的宽度 设置BorderWidth属性 返回目录5.2 常用标准控件-4 5.2 常用标准控件-4 3. 形状控件 功能:在窗体上绘制有规则的图形 Shape属性设置控件的具体形状 返回目录5.2 常用标准控件-5 5.2 常用标准控件-5 执行“工程→部件”命令可添加其他外部控件 [例5.9] DTPicker控件应用 (1) 添加DTPicker控件: 返回目录5.2 常用标准控件-5 5.2 常用标准控件-5 [例5.9] DTPicker控件应用 (2) 窗体设计: (3) “输出”按钮的Click事件过程: Private Sub Command1_Click() MsgBox "你的订票日期是" & DTPicker1.Value , , "输出" End Sub 返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 1. 添加窗体 “工程→添加窗体” 2. 显示或隐藏窗体 显示指定窗体 Object.Show [Style] Object-窗体名称 Style-显示模式(0、1) 隐藏指定窗体 Object.Hide 返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 3. 设置启动窗体 默认第一个窗体(Form1)为启动窗体 改变启动窗体:“工程→工程属性” 返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 4. 应用案例:设计试题库管理程序ctk.vbp的初步框架 返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 (1) 创建用户登录窗体Frmdl ① 新建工程:窗体保存为Frmdl.frm,工程保存为ctk.vbp。 ② 窗体设计: 下面4个按钮为一控件数组Cmdml(0)~Cmdml(3) 除“退出”按钮外,其它三个按钮的Enabled属性设为False 密码文本框Txtcode的PasswordChar属性设为“*” 底部提示标签Lblsm的Caption属性设为空 返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 ③ 程序设计: Dim cs As Integer 'cs记录出错次数 Private Sub Cmdml_Click(Index As Integer) Select Case Index Case 0: '单击"题库管理"按钮 Frmsele.Show 1 Case 1: '单击"自动选题"按钮 Frmxt.Show 1 Case 2: '单击"制作考盘"按钮 Frmcopy.Show 1 Case 3: '单击"退出"按钮 End End Select End Sub返回目录控件数组按钮的Click事件响应代码:点击后可打开相应的窗体 5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 Private Sub Cmgqd_Click() '单击“确定”按钮 If cs < 3 Then If UCase(TxtName.Text) <> "TEACHER" Then Lblsm.Caption = "用户名错误,请重新输入!" cs = cs + 1: TxtName.SetFocus ElseIf (Txtcode.Text) <> "kaoshi" Then Lblsm.Caption = "密码错误,请重新输入!" cs = cs + 1 : Txtcode.SetFocus Else '用户名和密码均正确的情况 Lblsm.Caption = "" : Cmdml(0).Enabled = True Cmdml(1).Enabled = True : Cmdml(2).Enabled = True End If Else Lblsm.Caption = "已连错三次,请退出!" :Cmdml(3).SetFocus End If End Sub返回目录5.3 多窗体程序的设计与应用 5.3 多窗体程序的设计与应用 (2) 添加题库管理窗体Frmsele ① “工程→添加窗体”,新建一个窗体,保存为Frmsele.frm。 ② 在该窗体中添加一个命令按钮, ③ 编写Click事件响应代码: Private Sub Cmd_exit_Click() Unload Me End Sub (3) 仿上,添加窗体Frmxz.frm (4) 仿上,添加窗体Frmcopy.frm 返回目录5.4 VB工程管理-工程的组成 5.4 VB工程管理-工程的组成 VB工程包含多种类型的文件 其中最常用的文件是: 工程文件 包含与该工程有关的全部文件、对象以及所设置的环境选项的信息(见教材图5-30 ),扩展名.vbp 窗体文件 包含窗体及其控件有关属性的文本描述、常量或变量的声明、以及窗体内的过程代码等(见教材图5-31),扩展名为.frm 若窗体中对象的数据含有二进制属性,保存该窗体时将自动生成同名的二进制数据文件,扩展名为.frx 标准模块文件 通常用来定义供其他窗体或模块引用的全局常量、变量、过程等,扩展名为.bas 返回目录5.4 VB工程管理-工程的基本操作 5.4 VB工程管理-工程的基本操作 1. 新建、打开和保存工程 新建工程 启动VB时:“新建工程”对话框的“新建”选项卡 VB窗口中:“文件→新建工程” 打开工程 启动VB时: “现存”、“新建” VB窗口中:“文件→打开工程” 保存工程 单击 “保存工程”按钮 “文件→保存工程” “文件→工程另存为”返回目录5.4 VB工程管理-工程的基本操作 5.4 VB工程管理-工程的基本操作 2. 工程中添加、移除和保存文件 添加指定类型的文件:“工程→添加…” 删除选定的文件:“工程→移除…” 保存选定的文件:“文件→保存…” 另存选定的文件:“文件→…另存为” 注: 上述操作可用快捷菜单中的相关命令 在当前工程中添加现存的文件时(例如,添加其他工程中的窗体),并不是添加该文件的副本,而只是简单地在工程中包含对该文件的引用。 返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 1. 三个基本的鼠标事件 MouseDown、MouseUp、MouseMove MouseDown和MouseUp Private Sub 对象名称_MouseDown(Button As Integer,Shift As Integer, X As Single,Y As Single) Private Sub 对象名称_MouseUp(Button As Integer,Shift As Integer, X As Single,Y As Single) 其中: Button:返回一个整数(1-左、2-右、 4-中) Shift:返回一个整数(见教材表5.4 ) 代表Shift、Ctrl或Alt键的状态 X、 Y :返回当前鼠标指针的水平坐标和垂直坐标返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 [例5.10] 用Move方法移动窗体上的图片: 窗体上按下左键,图片框的左上角移到当 前鼠标指针所在位置;按下右键,则图片框 的中心移到当前鼠标指针所在位置。 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then '按下左键 Picture1.Move X, Y End If If Button = 2 Then '按下右键 Picture1.Move (X - Picture1.Width / 2), (Y - Picture1.Height / 2) End If End Sub 返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 MouseMove Private Sub对象名称_MouseMove(Button As Integer,Shift As Integer, X As Single,Y As Single) 除Button参数(见教材表5.5),其余参数的含义与MouseDown和MouseUp的相同 [例5.11]让图片框中的文本框跟随鼠标指针移动 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = " " & X & "," & Y '显示当前鼠标位置 Text1.Left = X Text1.Top = Y End Sub返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 2. 拖放操作(DragDrop) 若干术语 Drag:按下鼠标按钮并移动对象的操作 Drop:到达目的地后释放鼠标按钮的操作 源:被拖动的对象 目标:是源控件放下或经过的对象 只有目标对象能响应DragDrop或DragOver事件 返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 DragMode属性:设置拖动模式 DragMode=1 (vbAutomatic),自动模式 DragMode=0 (vbManual),手工模式 DragDrop事件 拖动一个控件到目的位置并释放鼠标按钮时,在目标对象上(不是被拖的对象)触发DragDrop事件 Private Sub 对象名称_DragDrop(Source As Control, X As Single, Y As Single) 其中,Source代表被拖动的控件,X和Y表示鼠标指针的当前坐标位置。返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 DragOver事件 拖动控件时,在目标对象上触发DragOver事件 Private Sub Form_DragOver(Source As Control, X As Single, Y As Single,State As Single) 其中,Source、X和Y参数的含义同DragDrop事件,State参数表示被拖控件与目标对象之间的相对位置关系(见教材表5.6) Drag方法 用于启动或停止手工拖动: [对象.] Drag <动作参数> 动作参数有三种取值,见教材表5.7。 返回目录5.5 鼠标与键盘事件-鼠标事件 5.5 鼠标与键盘事件-鼠标事件 [例5.12] 实现在窗体上随意拖动图片框或文本框 Private Sub Form_Load() Picture1.DragMode = 1 '设置图片框控件为自动拖动模式 Text1.DragMode = 1 '设置文本框控件为自动拖动模式 End Sub Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y '将源控件移到鼠标指针所指新位置 End Sub返回目录5.5 鼠标与键盘事件-键盘事件 5.5 鼠标与键盘事件-键盘事件 1. KeyPress事件 按下键盘上与ASCII字符对应的键时触发KeyPress事件 Private Sub 对象名称_KeyPress(KeyAscii As Integer) 参数KeyAscii返回按键的ASCII代码值 KeyAscii设为0,则对象无法接收用户的输入 例如,以下的事件过程只允许在Text1中输入数字字符0~9 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub 返回目录5.5 鼠标与键盘事件-键盘事件 5.5 鼠标与键盘事件-键盘事件 2. KeyDown和KeyUp事件 在按下/释放键时触发 Private Sub对象名称_KeyDown(KeyCode As Integer, Shift As Integer) Private Sub对象名称_KeyUp(KeyCode As Integer, Shift As Integer) KeyCode参数返回所按物理键的代码值;Shift参数返回一个整数值,指示Shift、Ctrl和Alt键的状态,见教材表5.4 KeyPress事件与KeyDown/KeyUp事件的区别 前者返回的是字符的ASCII码,后者返回的是“键”的代码 例如,当按“A”和“a”时将返回同一个KeyCode值 ,而对KeyPress来说,按“A”和“a”得到的ASCII码是不一样的返回目录vbKeyA 65“A” 65 “a” 975.5 鼠标与键盘事件-键盘事件 5.5 鼠标与键盘事件-键盘事件 [例5.13] 模拟打字机 Private Sub Form_Load() Form1.KeyPreview = True End Sub '使窗体优先响应键盘事件 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyC And Shift = 2 Then Unload Me End Sub '按Ctrl+C键可关闭窗体 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 'ASCII码为13表示回车 List1.AddItem Text1.Text Text1.Text = "" End If End Sub返回目录在文本框中输入,回车后输入的内容显示在列表框中 5.5 鼠标与键盘事件-键盘事件 5.5 鼠标与键盘事件-键盘事件 [例5.14] 用户名称可从组合框中选择;在“用户名称”框中按回车键,“密码”框获得焦点;在“密码”框中按回车键,等价于单击“确定”按钮;单击“确定”按钮后,若密码正确,则打开有待建设的主窗体;单击“取消”按钮结束程序。返回目录5.6 菜单的设计与应用-相关概念 5.6 菜单的设计与应用-相关概念 1. 菜单的类型 下拉菜单:常以菜单栏的形式出现在标题栏下面 弹出菜单(快捷菜单):独立于菜单栏而显示在窗体上的浮动菜单,其菜单项取决于按下鼠标右键时指针所处的位置。 2. VB中的菜单控件 菜单和菜单项均看作是菜单控件 菜单控件两个最重要的属性 名称(Name):程序代码中用来引用菜单控件 标题(Caption):出现在控件上的文本 菜单控件只响应Click事件 返回目录5.6 菜单的设计与应用-使用菜单编辑器 5.6 菜单的设计与应用-使用菜单编辑器 打开菜单编辑器: “工具→菜单编辑器” 工具栏“菜单编辑器”按钮 1. 常用属性 标题:设置Caption属性 字符前加&,该字符成为访问键 只输入一个减号- ,创建分隔条 名称:设置Name属性 注:对分隔条,也需定义名称 索引(Index):用于菜单控件数组 快捷键 、 复选(Checked) 有效(Enabled)、 可见(Visible)返回目录5.6 菜单的设计与应用-使用菜单编辑器 5.6 菜单的设计与应用-使用菜单编辑器 2. 编辑菜单控件 返回目录 如果菜单控件的前面没有内缩符号“····”,表明该控件建立的是主菜单,否则为菜单命令或子菜单。 5.6 菜单的设计与应用-设计下拉菜单 5.6 菜单的设计与应用-设计下拉菜单 方法:先通过菜单编辑器设计菜单,然后编写各菜单控件的Click事件过程。 [例5.15] 创建简易编辑器 (1) 设计菜单 返回目录5.6 菜单的设计与应用-设计下拉菜单 5.6 菜单的设计与应用-设计下拉菜单 [例5.15] 创建简易编辑器 (2) 设计界面 菜单下面绘制两条直线(两个Line控件),一条为黑色,一条为白色。 黑线的Y1和Y2属性设为0 白线的Y1和Y2属性设为10 文本框Text1: MultiLine设为True ScrollBars设为3 (3) 编写菜单控件的Click事件过程返回目录5.6 菜单的设计与应用-设计弹出菜单 5.6 菜单的设计与应用-设计弹出菜单 用PopupMenu方法可显示弹出式菜单 [对象.]PopupMenu 菜单控件名称 若“对象”缺省,则在当前窗体中显示弹出菜单 通常,按下鼠标右键时显示弹出菜单,例如: Private Sub Form或控件名称_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then '如果按的是鼠标右键 PopupMenu 菜单名 '显示弹出菜单 End If End Sub 返回目录5.6 菜单的设计与应用-设计弹出菜单 5.6 菜单的设计与应用-设计弹出菜单 [例5.16] 弹出菜单设计 (1) 打开例5.15所建立的工程 (2) 添加如下的事件过程: Private Sub Text1_MouseDown(Button As Integer, Shift As Inte
本文档为【VB程序设计及数据库开发技术 (4)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_004721
暂无简介~
格式:ppt
大小:751KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-05-08
浏览量:8