【vb精品源码栏目提醒】:网学会员在vb精品源码频道为大家收集整理了“应用程序界面设计 - 计算机等级“提供大家参考,希望对大家有所帮助!
Visual Basic程序设计(第二版) 主编 柳青 严健武 中国水利水电出版社第6章 应用程序界面设计 应用软件的开发不仅要考虑其功能的完备性和先进性, 还必须具有良好的用户界面。
在应用程序中使用菜单和 工具栏是改善用户界面的一个重要手段。
一个应用程序 的菜单和工具栏设计得好,不仅能使系统美观,而且使 操作更简便,并能避免操作失误而造成的严重后果。
本 章介绍Visual Basic 的菜单和工具栏的设计技术。
6.1.1 认识菜单 菜单Menu是Windows应用程序不可缺少的组成部分。
菜单以 分组的形式组织多个命令或操作,使用户界面变得更加整洁而美 观,为用户灵活操作应用程序提供了便捷的手段。
1. 菜单的分类 在Windows环境下,菜单分为下拉式菜单和快捷菜单两种形式 。
(1)下拉式菜单。
一种典型的窗口式菜单,一般由应用程序窗口 菜单栏中的主菜单、子菜单以及子菜单中的菜单项和菜单项分隔 条组成,如图6-1所示。
程序运行时,一旦用户用鼠标或键盘选择 某主菜单项,将立即弹出一个下拉的子菜单。
图6-1 下拉式菜单的组成 正常情况下,下拉式菜单只显示主菜单,用鼠标单击或用热键可以下拉 各级子菜单。
程序的各种功能由各级子菜单中的菜单项(菜单命令)完 成。
图6-1所示是一个二级菜单的实例,其中右边带有三角形的菜单项表示还 可以打开下一级子菜单。
在Visual Basic中,最多可以建立六级菜单。
(2)弹出式菜单。
快捷菜单又称“上下文菜单”或“弹出式菜单”,是一种可 以显示在窗体任何位置并独立于菜单栏的浮动式菜单。
一般通过在某一 区域单击鼠标右键的方式激活特定的快捷菜单,鼠标单击的区域不同, 弹出的菜单内容一般也不同。
例如,字处理软件Word中的菜单是下拉式菜单,将光标指向Word文档 窗体中的任意位置单击右键所弹出的快捷菜单,则是弹出式菜单。
2. 菜单的组成 菜单包括菜单栏、菜单标题、菜单项等几部分。
菜单栏在窗口标 题栏的下方,一般包含多个菜单标题;菜单标题是菜单栏中的项 目,通常又称主菜单,在一个菜单标题中一般还包括多个菜单项 ,可以用下拉的方式打开;菜单项隶属于菜单标题,可以包含菜 单命令、分隔线和下一级子菜单标题。
与其它可视化对象一样,可以对发生在菜单上的事件编写事件过 程。
在程序设计时,
VB的菜单又可以称为菜单控件,即每一个菜 单项相当于一个控件,有其属性。
菜单控件只有Click事件,即只 能编写响应菜单控件单击事件的事件过程。
在Visual Basic中,菜单被看作是一种特殊控件,每一个主菜单、 子菜单项以及菜单项分隔条都是一个控件,这些控件同样拥有一 组定义其外观与行为的属性和事件。
设计或运行菜单时,用户可 以对其属性进行设置或调用。
例如:Name属性用于在设计时定 义菜单的名称,Caption属性用于设置菜单的显示标题,Visible 属性用于决定菜单是否可见等。
所有的菜单控件都能够响应Click 事件,运行应用程序时,用鼠标或键盘选中某一菜单,系统立即 调用该菜单的Click事件,实现其相应的功能。
注意:
VB中的菜单必须与窗体关联,只有在打开一个窗体后,才 能定义该窗体中的菜单。
3. 菜单编辑器Menu Editor “菜单编辑器”是Visaul Basic系统提供的一个简单实用的工具,可 用于交互地设计应用程序菜单,如添加新菜单、修改或重排已有 菜单、删除已有菜单或给菜单添加特殊的效果等。
在集成开发环境的菜单栏上选择“工具→菜单编辑器...”选项,或在 标准工具栏上单击“菜单编辑器”按钮,可以弹出“菜单编辑器”对 话框,如图6-2所示。
图6-2 菜单编辑器在“菜单编辑器”的帮助下,只需要很少的程序代码,就能设计出美观实用的应用程序菜单。
利用菜单编辑器可以创建新的菜单,也可以对已有菜单进行菜单项的增加、修改和删除,并重新编辑。
“菜单编辑器”分为两大部分:菜单的属性设置部分和编辑菜单部分。
编辑区用于设置或修改各菜单项的相关属性并进行编辑,显示区列表显示已定义的菜单和菜单项。
1.菜单属性设置(1)“标题”Caption文本框:对应于Caption属性,用于输入菜单 项或菜单标题的名称(Caption),输入的菜单标题也会在“菜单 控件”列表框中显示出来。
如果当前菜单项要设置为一个菜单项分隔条,必须在此输入一个 连字符”-”号。
如果输入时在某个字母前键入一个”&”符号,该字母就即成为访 问键。
例如,输入“文件&F”,则F为“文件”菜单的访问键,程 序运行时在窗体上将看到的菜单项标题显示为“文件F”,这表示 用户可以通过同时按下键盘上的Alt键和F键来选中该菜单项。
注意:每一个主菜单项和子菜单项都可以定义一个访问键,但是同一级菜 单项的访问键不能重复。
例如,Microsoft Word中主菜单项“表格”与“文 件”主菜单项下的“另存为”子菜单项的访问键均为A,而在“文件”主菜单 的一级子菜单中,决不会出现另一个子菜单项的访问键也为A的情况。
(2)“名称”Name文本框:对应于Name属性,用于输入菜单控件名称( Name)。
与窗体中的其它对象一样,窗体中的每一个菜单项或菜单标题 对象都是窗体中的控件,必须为每个菜单控件命名。
(3)“索引”Index文本框:对应于Index属性,用于设置菜单控件数组中 某成员的索引值即下标。
可以为几个连续的菜单项定义相同的控件名, 并为每个菜单项加上索引值(0、1、2、…),组成菜单控件数组。
菜单控件数组指的是一组具有相同菜单名称、而又具有不同属性值的菜 单控件,它们共享事件过程,例如,Menu10、Menu11、 Menu12……等。
菜单控件数组中,每一个成员的索引值应是唯一的,所有成员必须属于 同一级菜单项,并且各成员在菜单控件列表框中是连续的,即其索引值 必须以0、1、2…的次序设置。
利用菜单控件数组,通过编写程序代码,就可以在程序运行时实现菜单项 的动态增减。
(4)“快捷键”ShortCutKey列表框:提供一个快捷键列表,包括 CtrlA、CtrlB、…、CtrlZ、F1、F2、…、F12、CtrlFl、 CtrlF2、…、CtrlF12等复合键,供用户为某菜单项选择快捷键 。
缺省值为none,表示不设置快捷键。
快捷键的一般格式是组合 键Ctrl“字母键”。
除主菜单项外,任何一个菜单项都可以有快捷键。
一旦选定了一 个快捷键,该快捷键必须是唯一的,即不能与本应用程序中的其 他任何级别菜单项的快捷键重复。
程序运行时,快捷键会自动出 现在菜单项标题的右边,按下快捷键即可立即选中所对应的菜单 项,就像用鼠标直接单击该菜单项那样执行相应的事件程序。
通常,应该为程序中频繁使用的菜单项指定快捷键。
快捷键与访 问键都可以使用户更便捷地操作菜单,但是要注意二者之间的差 别。
(5)“帮助上下文ID” HelpContextID文本框:对应于 HelpContextID属性,在设计帮助菜单时,输入帮助文件的上下 文的标识符,即Help文件的上下文的ID号。
⑹“协调位置”Negotiate Position列表框:对应于菜单控件的NegotiatePosition属性,确定该菜单在窗体中是否或如何出现。
每个菜单控件都有NegotiatePosition属性,该属性决定在激活链接或嵌入的对象菜单时,窗体顶层菜单中哪些菜单显示,哪些菜单不可见。
该属性有四个可选的值:0-None:缺省值,菜单项不显示。
1-Left:菜单项左显示。
2-Middle:菜单项居中显示。
3-Right:菜单项右显示。
⑺“复选”Checked复选框:对应于Checked属性。
用于设置当该菜单项显示时,是否在其左边出现一个提示性标记“√”,表示该菜单项是否被选中。
如果选定该检查框,则相应该菜单项控件的Checked属性值变为True,反之为False。
⑻“有效”复选框:用于设置菜单控件的Enabled属性。
菜单控件的Enabled属性决定该菜单项在菜单中是否有效。
若某菜单项无效,则呈暗色,表示不可用。
如Word的“文件”菜单中,当未打开文件时,菜单中的“关闭”菜单项是无效的;打开某个文件后,菜单中的“关闭”菜单项变成有效。
⑼“可见”Visible复选框:决定菜单项是否可见,对应于Visible属性。
如果选中该检查框,表示Visible属性值为 True,运行时该菜单项可见,反之不可见。
若一个菜单项不可见,则该菜单项的所有子菜单都是不可见的。
⑽“显示窗口列表”WindowList复选框:用于设置菜单控件的WindowList属性。
只适用于多文档MDl界面,用于设定在菜单控件上是否显示所打开的MDI子窗体标题列表。
在菜单中只能有一个菜单项的该检查框被选中。
2.菜单的编辑(1)“菜单控件”列表框:列出当前窗体中已建立的菜单控件。
从列 表框中选取一个已存在的菜单项,可以编辑该菜单的属性。
菜单 控件在列表框中的位置决定了该控件是菜单标题、菜单项、子菜 单标题,还是子菜单项。
位于列表框中与左边界平齐的菜单控件:作为菜单标题显示在菜 单栏中。
在列表框中被“....”缩进的菜单控件:作为菜单项出现在其前导菜 单标题的菜单上,单击其前导的菜单标题时才会在该菜单上显示 。
缩进的菜单控件:如果后面还紧跟着再次缩进的一些菜单控件, 将成为一个子菜单的标题。
在子菜单标题以下缩进的各个菜单控 件,将成为该子菜单的菜单项。
(2)编辑命令:包括左、右、上、下箭头命令按钮和编辑命令按钮,用 于编辑“菜单控件”列表框中的菜单控件。
左、右箭头命令按钮:用于编辑菜单控件的缩进级,每单击一次右箭头 按钮,将使该菜单控件缩进一级。
在菜单编辑器中每缩进一级,在菜单 控件前加四个点 ....;每单击一次左箭头按钮,删除(或减少)菜单控 件的一个缩进级。
上、下箭头命令按钮:用于将条形光标所在菜单控件移到所需位置,上 箭头将所选菜单项向上移动,下箭头将所选菜单项向下移动。
“下一个”命令按钮:将光标移到下一个菜单项,当条形光标处于菜单控件 列表的末尾时按 “下一个”按钮,则添加一个新的菜单项,且缩进级与上 一个菜单项相同。
“插入”命令按钮:用于插入一个菜单项。
单击“插入”按钮,在条形光标所 在的菜单项前面插入一个菜单项,插入的菜单项的缩进级与插入前的菜 单项的缩进级相同。
“删除”命令按钮:用于删除一个菜单项。
单击“删除”按钮,删除条形光标 所在的菜单项。
菜单控件是窗体中对象,与
VB中的其它对象一样,具有定义其外观与行为 的属性。
菜单控件的属性可用“菜单编辑器”设置,也可以在程序中用赋 值语句设置。
6.1.2 创建下拉式菜单 菜单编辑器提供了创建应用程序菜单的工具,可以方便地在菜单 栏建立下拉式菜单。
在编辑菜单时,逐项地输入、编辑和设定要 建立的菜单和菜单项属性,即可在窗体上建立下拉菜单。
例6-1 设计如图6-3所示的下拉式菜单。
当选择 “显示”主菜单下 的“日期”子菜单时,在窗体上显示当前的日期;选择“显示”菜单 下的“时间”子菜单时,在窗体上显示当前时间;选择“退出”子菜 单,结束程序运行;选择“帮助”菜单下的“关于”子菜单,弹出图 6-4所示的消息对话框。
图6-4 关于对话框 图6-3 日期/时间显示程序分析应用程序通常都有菜单。
对于大型的应用程序,在设计菜单之前首先需 要将完整的菜单结构在草图上先画出来,并详细列出菜单的组成然后再 进入
VB集成开发环境中进行具体创建。
创建下拉式菜单的步骤如下:(1)在应用程序工程中,打开要建立下拉式菜单的窗体。
(2)打开菜单编辑器,进行菜单编辑。
(3)在代码窗口中编写各菜单、菜单项所对应的Click事件过程。
(4)运行程序,测试各个菜单项的功能。
(5)保存工程。
设计菜单结构假设本例的菜单数据如表6-1所示。
表6-1 应用程序菜单结构 菜单项 标题 名称 级别 备注主菜单项1 显示 MnuDisplay 主菜单 D子菜单项 日期 Mnudate 一级子菜单 快捷键为 11 D 子菜单项 时间 Mnutime 一级子菜单 快捷键为 12 T 子菜单项 - Mnul3 一级子菜单 分隔条 13子菜单项 退出 Mnuexit —级子菜单 快捷键为 14 X 主菜单项1 帮助 Mnuhelp 主菜单 H子菜单项 关于 Mnuabout 一级子菜单 快捷键为 21 A 编辑菜单在窗体设计器中打开并选定要建立菜单的窗体Form1,打开菜单编辑器,按照表6-1在菜单编辑器中编辑菜单。
例如,在定义好第一个主菜单项“显示D”后,单击菜单编辑器中“下一个”按钮,在空白的标题输入框、名称输入框中依次输入“日期D”和“Mnudate”,选择快捷键CtrlD,且选中“有效”、“可见”检查框,该菜单项即出现在菜单编辑器显示区中,接着单击右箭头按钮,使之向右缩进,设定为一级子菜单,完成子菜单项“日期T”的编辑工作。
依次编辑各个菜单项。
菜单编辑完成后,单击“确定”按钮,关闭菜单编辑器,新建菜单出现在窗体Form1上,但这时并不能真正起作用。
编写Click事件过程 对有关的菜单项编写相应的Click事件过程,使相应菜单项完成具体功能 。
本例中,需对“日期”、“时间”、“退出”和“关于”三个菜单项的Click事件进 行编程,以实现所要求的功能。
分隔条一般在菜单中只起分组或分隔的 作用,不需对其编程。
选定窗体Form1,打开代码窗口,在对象列表框中依次找到nmudate、 mnutime、mnuexit和mnuabout菜单项名称,并选择Click事件编写事件 过程的代码。
程序代码如下: Private Sub mnudate_Click Print”今天是:”YearDate “年”MonthDate “月”DayDate “日” End Sub Private Submnu time_Click Print”现在是北京时间: “Time End Sub Private Sub mnuexit_Click End End Sub Private Sub mnuabout_Click MsgBox”作者:许静” Chr10 Chr10 “2000年12月1日”,,”关于”End Sub 运行结果 运行程序,测试菜单功能是否正常。
如果有问题,则终止程序执行,检 查菜单设计与代码是否正确,修改后再运行,直至应用程序正确为止。
程序运行结果如图6-5所示。
图6-5 日期/时间显示程序运行界面 总结与提高 1. 用“菜单编辑器”创建菜单控体的基本步骤: (1)选取要建立菜单的窗体; (2)在菜单栏上选择“工具→菜单编辑器”选项,或在“工具栏”上单击“ 菜单编辑器”按钮。
(3)在“标题”文本框输入第一个菜单的标题。
用字符指定某个字符 作为该菜单项的热键。
(4)在“名称”文本框中输入菜单控件的名称(Name属性)。
(5)单击左箭头或右箭头按钮,改变该菜单控件的缩进级。
上一篇:
第5章_函数与子程序
下一篇:
经济民主一种关于劳动的政治经济学