资源预览内容
第1页 / 共49页
第2页 / 共49页
第3页 / 共49页
第4页 / 共49页
第5页 / 共49页
第6页 / 共49页
第7页 / 共49页
第8页 / 共49页
第9页 / 共49页
第10页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第 9-10 章 界 面 设 计,9.1 菜单的设计 9.2 工具栏的设计 9.3 对话框的设计,2,9.1 菜单的设计,菜单可以分成两种基本类型:,下拉式菜单,通常通过单击菜单标题打开。 弹出式菜单,通常通过在某对象上单击鼠标右键打开。,3,9.1.1 下拉式菜单,1下拉式菜单的结构 (1)主菜单:包括若干个主菜单标题。放在主菜单栏中,一般用于对要执行的操作按功能进行分组。不同功能的操作划分在不同的主菜单标题下。每一个主菜单标题可以下拉出下一级菜单,称为子菜单。,4,(2)子菜单: 菜单项可以直接执行菜单命令 菜单项再下拉出一级菜单子菜单标题。 分隔条对子菜单项进行分组。 子菜单可以逐级下拉,在屏幕上依次打开,当执行了最底层的菜单命令之后,这些子菜单会自动从屏幕上消失。,5,2下拉式菜单的设计 可以把每个菜单项看成一个控件。和普通控件一样,每个菜单控件都有其属性、事件和方法。 与其他控件不同的是,下拉式菜单的设计需要通过“菜单编辑器”来完成。 首先选择要在其上设计菜单的窗体,然后打开菜单编辑器,在菜单编辑器中完成对整个菜单结构的设计。 注意,菜单总是建立在窗体上的,所以,只有当某个窗体为当前活动窗体时,才能打开菜单编辑器。如果当前窗口为代码窗口,则不能打开菜单编辑器。,6,(1)属性区用于设置或修改菜单项的属性。 标题:即菜单控件的Caption属性,用于输入要在菜单项中显示的文字,如“文件”、“编辑”、“查看”等。,7,可以在一个字母前插入&符号,给菜单项定义一个访问键。例如,定义某菜单标题为“文件(&F)”,则在菜单中显示为“文件(F)”,F即为访问键。 名称:即菜单控件的Name属性。 索引:即菜单控件的Index属性。可以将若干个菜单控件取成相同的名称,定义成一个控件数组。Index属性即菜单控件数组的下标。 快捷键:即菜单控件的Shortcut属性,用于为当前的菜单项指定一个快捷键。快捷键从下拉列表中选择,如“Ctrl+A”、“Ctrl+K”等。,8,复选:即菜单控件的Checked属性。该属性用来设置菜单项的左边是否带复选标记。在菜单编辑器中选择该属性时,相应的菜单项的旁边会带有一个符号,而在代码中通过设置菜单项的Checked属性值为True或False。 有效:即菜单控件的Enabled属性。该属性用来决定是否让菜单项对事件做出响应。 可见:即菜单控件的Visible属性。该属性用来决定菜单项是否显示。,9,(2)编辑区共有7个按钮,用于添加、删除菜单项,调整菜单项的位置及等级。 “ ”按钮:单击该按钮把在菜单列表区中选定的菜单向下移一个等级,在菜单列表中显示一个内缩符号()。 “ ”按钮:单击该按钮把在菜单列表区中选定的菜单向上移一个等级。 “ ”按钮:单击该按钮把在菜单列表区中选定的菜单项在同级菜单内向上移动一个位置。 “ ”按钮:单击该按钮把在菜单列表区中选定的菜单项在同级菜单内向下移动一个位置。,10,“下一个”按钮:开始一个新的菜单项。 “插入”按钮:在菜单列表区中的当前选定行上方插入一行,用于插入一个新菜单项。 “删除”按钮:删除当前在菜单列表区中选定的行。 (3)菜单列表区用于显示菜单项的分级列表。子菜单项以缩进方式显示它们的等级。 在菜单编辑器中完成了各菜单项的设置之后,单击“确定”按钮关闭菜单编辑器,这时在窗体的顶部就可以看到设计的菜单结构。注意,在设计时单击菜单项不是执行菜单项的功能,而是打开菜单项的Click事件过程代码窗口。,11,【例9-1】 设计菜单界面,,12,在菜单编辑器中完成了各菜单项的设置之后,单击“确定”按钮关闭菜单编辑器。完成菜单设计。向窗体上添加一个文本框Text1,录入适当的文字。 以下是“编辑”菜单下的各子菜单项的Click事件过程:,Private Sub txtCopy_Click() 复制 Clipboard.Clear 清除剪贴板 Clipboard.SetText Text1.SelText 将文本框中选择的文本放到剪贴板中 End Sub,13,Private Sub txtCut_Click() 剪切 Clipboard.Clear 清除剪贴板 Clipboard.SetText Text1.SelText 将文本框中选择的文本放到剪贴板中 删除在文本框中选择的文本 Text1.SelText =” End Sub Private Sub txtPaste_Click() 粘贴 s = Clipboard.GetText 获取剪贴板的文本 将剪贴板的文本加到文本框的当前位置 Text1.SelText =S End Sub,14,下面是“格式”菜单下的其他菜单项的Click事件过程:,Private Sub txtleft_Click() 左对齐 Text1.Alignment = 0 End Sub Private Sub txtCenter_Click() 居中 Text1.Alignment = 2 End Sub Private Sub txtRight_Click() 右对齐 Text1.Alignment = 1 End Sub,15,Private Sub txtStrikethru_Click() 删除线 If txtStrikethru.Checked = True Then Text1.FontStrikethru = False 给文本框去除删除线 txtStrikethru.Checked = False 去除“删除线”菜单项前面的符号 Else Text1.FontStrikethru = True 给文本框加上删除线 txtStrikethru.Checked = True 给“删除线”菜单项前面加上符号 End If End Sub Private Sub txtUnderLine_Click() 下划线 If txtUnderLine.Checked = True Then Text1.FontUnderline = False txtUnderLine.Checked = False,16,Else Text1.FontUnderline = True txtUnderLine.Checked = True End If End Sub Private Sub txtItalic_Click() 斜体 If txtItalic.Checked = True Then Text1.FontItalic = False txtItalic.Checked = False Else Text1.FontItalic = True txtItalic.Checked = True End If End Sub,17,在VB中,可以通过菜单数组来实现 菜单项的动态增减。 先设计一个菜单项,定义该菜单项为菜单数组的第1项,即在菜单编辑器中,设置其“索引”属性值为0,“可见”属性为False(不可见)。 在需要增加菜单项时,使用Load方法向该菜单数组增加新的菜单项,并为新增的菜单项设置标题(Caption)和可见(Visible)属性; 在需要减少菜单项时,使用Unload方法从该菜单数组中删除一项。,18,【例9-2】在 【 例9-1 】 的基础上进一步实现菜单项的动态增减。要求:运行时单击“打开”菜单项在分隔条下面增加一个新的菜单项(一个由用户指定的文件名),单击“关闭”菜单项删除分隔线下面一个指定的菜单项。,19,在“文件”菜单下的分隔条子菜单项SptBar1之后添加一个新的子菜单项: 标题为空, 名称为SubMenu, 去除“可见”属性前面的 , 设置索引属性为0, 则SubMenu为一个菜单控件数组,现在菜单控件数组中只有一个元素SubMenu(0)。 代码设计:在窗体模块中定义模块级变量MenuNum,用于保存当前SubMenu菜单数组的最大下标: Dim MenuNum As Integer,20,“打开”菜单项的Click事件如下: Private Sub FileOpen_Click() OpenFileName = InputBox(“请输入文件名称“) If Trim(OpenFileName) “ Then 如果输入的文件名不为空,则添加 MenuNum = MenuNum + 1 数组最大下标增加1 Load SubMenu(MenuNum) 添加菜单项 SubMenu(MenuNum).Caption = OpenFileName 设置新添加的菜单项的标题 SubMenu(MenuNum).Visible = True 设置新添加的菜单项可见 End If End Sub,21,“关闭”菜单项的Click事件过程如下: Private Sub FileClose_Click() N = Val(InputBox(“请指定关闭第几个文件“) If N MenuNum Or N 1 Then 如果指定要关闭的文件超出实际范围 MsgBox “超出范围!“ Else 以下循环从被删除的菜单项开始,用后面的菜单项逐项覆盖前面的菜单项 For I = N To MenuNum 1 SubMenu(I).Caption = SubMenu(I + 1).Caption Next I Unload SubMenu(MenuNum) 删除最后一个菜单项 MenuNum = MenuNum 1 菜单控件数组总项数减1 End If End Sub,22,设计工具栏有两种方法:手工设计和使用工具栏控件进行设计。 使用手工方式设计工具栏 采用以下步骤: (1)在窗体上放置一个图片框,设置其Align属性为1,调整好图片框的高度。 (2)在图片框中放置想在工具栏上显示的控件,如命令按钮、选项按钮等。 (3)对于可以带图形的控件,可以设其Style属性为1,然后给控件加载一定的图片。,9.2 工具栏的设计,23,(4)设置控件的ToolTipText属性,给控件添加适当的文字提示,运行时,鼠标指向控件时就会显示该文字提示。 (5)为各工具栏控件编写代码,完成相应的功能。 【例9-4】使用手工方式为【例9-3】添加工具栏,实现编辑菜单下的复制、剪切、粘贴功能。,Picture1,24,代码设计:为3个工具栏按钮的Click事件过程编写代码,在代码中可以直接调用“编辑”菜单下的“复制、剪切、粘贴”子菜单项的Click事件过程,具体如下: Private Sub Command1_Click() 复制 txtCopy_Click End Sub Private Sub Command2_Click() 剪切 txtCut_Click End Sub Private Sub Command3_Click() 粘贴 txtPaste_Click End Sub,25,可以用以下3种方法创建对话框。 使用MsgBox函数或InputBox函数创建预定义对话框。 使用标准窗体创建自定义对话框。 使用ActiveX控件创建对话框。,9.3 对话框的设计,26,设计自定义对话框可以按以下步骤进行。 (1)添加窗体。 (2)将窗体定义成对话框风格。 例如, 设置以下属性: BorderStyle设置为1。 ControlBox设置为False。 MaxButton设置为False。 MinButton设置为False。,9.3.1 自定义对话框,27,(3)在对话框上添加按钮。对话框中通常要有两个按钮,例如“确定”与“取消”按钮。 可以将某个按钮的Defau
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号