《visual basic 第10章 设计多功能用户界面》由会员分享,可在线阅读,更多相关《visual basic 第10章 设计多功能用户界面(61页珍藏版)》请在金锄头文库上搜索。
1、第10章 设计多功能用户界面w 菜单的组成元素w 10.1 设计菜单 w 10.2 设计工具栏 w 10.3 多文档界面 w 10.4 使用应用程序向导 结束菜单的组成元素图10.1 菜单的组成元素 返回首页10.1 设计菜单w 10.1.1 菜单编辑器 w 10.1.2 利用菜单编辑器创建菜单栏 w 10.1.3 运行时修改菜单项 w 10.1.4 动态菜单 w 10.1.5 弹出菜单 返回首页10.1.1 菜单编辑器 (1)VB提供的“菜单编辑器”是一种用来建立菜单栏 的工具,利用它可以非常方便、快捷地在应用程序 的窗体上建立菜单。打开“菜单编辑器”对话框的 方法有以下几种:(1)选择【工
2、具】菜单中的【菜单编辑器】命令;(2)单击标准工具栏中的“菜单编辑器”按纽;(3)让窗体显示在开发环境中,按Ctrl+E键;(4)右击窗体空白处,在快捷菜单中选择【菜单编 辑器】命令。10.1.1 菜单编辑器 (2)打开【菜单编辑器】对话框后,其界面如图10.2所 示。图10.2 【菜单编辑器】对话框 10.1.1 菜单编辑器 (3)【菜单编辑器】对话框窗口分为上下两部分。上部用来设 置属性,下部则用来显示用户设置的菜单和菜单项。菜单编 辑器中各项内容和作用见教材表10.1。 菜单列表框中的每一行都是一个菜单控件,分属不同的等 级:菜单标题、菜单项、子菜单标题和子菜单项。菜单控件 在列表框中的
3、位置决定了该控件的等级:(1)位于列表框中左侧平齐的菜单控件作为菜单标题显示 在菜单栏中。(2)列表框中被缩进去的菜单项为下拉式菜单选项。(3)一个缩进过的菜单控件,如果后面还紧跟着再次缩进 的一些菜单控件,它就成为一个子菜单的标题。返回首页返回本节10.1.2 利用菜单编辑器创建菜单栏(1)1. 创建菜单项(1)在标题栏输入该菜单项的文本。(2)在名称栏输入程序中要引用该菜单项的名称 (类似于控件的Name)。(3)单击【下一个】按钮或【插入】按钮,建立 下一个菜单项。(4)重复(1)(2)(3)步骤,将菜单项全部建 立完毕后,单击【确定】按钮,关闭菜单编辑器。10.1.2 利用菜单编辑器创
4、建菜单栏(2)在菜单列表框中,级联菜单项标题前比上一 级菜单项多“”标志。 2. 创建分隔线当一个菜单标题上放置的菜单项较多时,为了 直观,可以使用水平线将菜单项分组。建立菜单 分隔线的步骤与建立菜单项的步骤相似,惟一的 区别就是在菜单编辑器的【标题】框中输入一个 连字符“-”。10.1.2 利用菜单编辑器创建菜单栏(3)3. 创建热键与快捷键建立热键(访问键)的方法与命令按钮相同, 即在菜单标题的某个字符前加上一个&符号,在菜 单中这一字符会自动加上下划线,表示该字符是 一个热键字符。建立快捷键的方法是打开菜单编辑器中快捷键 (Shortcut)下拉式式列表框并选择一个组合键 选项,则菜单项
5、标题的右边会显示快捷键名称。说明:热键指使用Alt键+字符键来打开菜单。10.1.2 利用菜单编辑器创建菜单栏(4)【例10.1】创建一个简易文本编辑器。要 求含有表10.2所示的菜单栏。表10.2 文本编辑器菜单结构 10.1.2 利用菜单编辑器创建菜单栏(5)设计方法:在窗体上放置一个通用对话框和 一个文本框,然后按表10.2设计菜单。菜单设计完成后,需要为菜单项编写事件过 程。本例中我们对“打开”、“保存”、“退出 ”菜单项编程。程序中通过对话框打开所选定的 文本文件,然后将文件内容传送到文本框。 保存时,先在文本框中输入 内容,然后单击“保存”菜 单项,弹出保存对话框,逐 步操作即可。
6、运行界面如图 10.3所示。代码详见教材。 返回首页返回本节10.1.3 运行时修改菜单项(1)1. 使菜单命令无效所有的菜单项(也叫菜单控件)都具有Enabled属性。 当Enabled设为False时,菜单命令无效使它不响应操作。 此时,快捷键的访问也无效。一个无效的菜单控件会变暗 。例如,若要使例10.1中“编辑”菜单下的“粘贴”菜单 项无效,可用下列语句: EditPaste.Enabled = False菜单标题无效将使得整个菜单无效,也就不能访问该菜 单标题中的任何菜单项。例如,语句 EditMenu.Enabled = False 可使例 10.1中的“编辑”菜单无效。10.1.
7、3 运行时修改菜单项(2)2. 使菜单控件不可见在菜单编辑器中,通过选中或不选【可见】复选 框,可以设置菜单控件的Visible属性的初值。在运行时,要使一个菜单控件可见或不可见,可 以从代码中设置其Visible属性。例如: 使菜单控件数组0号元素可见mnuFileArray(0).Visible = True使菜单控件数组0号元素不可见mnuFileArray(0).Visible = False10.1.3 运行时修改菜单项(3)3. 在菜单上使用复选标记可以用Checked属性来创建复选标志()。设 计时通过选取菜单编辑器中的【复选】(Checked )复选框来设置菜单控件Checke
8、d属性的初始值。 在运行时要在一个菜单控件上增加或删除复选标 志,可以从代码中设置它的Cheked属性。例如: 将菜单项当前的复选状态取反:若有复选标志则删除, 若无则添加mnuStatus.Checked = Not mnuStatus.Checked 返回首页返回本节10.1.4 动态菜单(1)在应用程序运行过程当中,可以根据需要动态地 增加或减少一些菜单项。这些可以动态增减的菜 单项组合就是动态菜单。建立动态菜单必须使用 菜单控件数组。建立菜单控件数组的方法是:在【菜单编辑器】 对话框中加入一个菜单项,将其索引(Index)项 属性设置为0。然后可以加入名称相同,Index值 有序相连的
9、菜单项。也可以只有一个Index为0的 菜单项,在运行时通过菜单项控件数组名和索引 值,使用Load语句加入新的菜单项;使用Unload 语句删除菜单项。10.1.4 动态菜单(2)Load和Unload语句格式如下: Load 菜单控件数组名(Index)Unload 菜单控件数组名(Index)【例10.2】使例10.1中的文件菜单能保留最近打开过的 文件清单。运行界面如图10.4所示。设计方法如下:以例10.1为基础,在文件菜单的“退出”菜单项前面插 入一个菜单项MenuAdd,设索引属性为0,使MenuAdd成为 菜单数组,设Visible属性为False,再插入一个名为bar3 的分
10、隔线,Visible属性亦为False。在菜单的最后加入名 称为MenuDel,标题为“删除菜单项”的菜单。在“打开 ”和“另存为”后各插入一个分隔线bar1和bar2。10.1.4 动态菜单(3)图10.4 例10.2运行界面 10.1.4 动态菜单(4)假定要保留的文件清单限定为5个文件名,用 Load方法向MenuAdd()数组加入动态菜单成员,代 码如下: I = I + 1 记录文件打开的数量 If I 0 ThenIf I 5 Then I = 5 若文件数5,设为5Unload MenuAdd(I) 删除菜单项I = I - 1End If若菜单项已全部删除,隐藏分隔线If I
11、= 0 Then bar3.Visible = False End Sub返回首页返回本节10.1.5 弹出菜单(1)10.1.5 弹出菜单右击鼠标时弹出的快捷菜单即弹出菜单,也叫浮 动菜单。弹出菜单的设计方法是:先用菜单编辑器设计一 个普通菜单,然后用VB提供的PopupMenu方法来显 示弹出菜单。该方法的使用形式是: 对象.PopupMenu 菜单名,标志,X,Y其中:菜单名是必需的,其他参数是可选的。X 、Y参数指定弹出菜单显示的位置。标志参数用于 进一步定义弹出菜单的位置和性能,其取值参见表 10.3。 10.1.5 弹出菜单(2)说明: 选择位置值和性能值时,将其用 Or 运算符进
12、行组 合。PopupMenu方法应结合MouseDown或MouseUp事件过程来 使用。该方法也可用于选定一个子菜单名。10.1.5 弹出菜单(3)如果不希望弹出菜单的菜单项出现在一般菜单栏 里,只需将菜单的Visible属性设置为False,即在 菜单编辑器内不选中【可见】复选框。当使用 PopupMenu方法时,它可以忽略Visible的设置。例如,在例10.2中要加入有关“编辑”这部分菜单 的弹出菜单功能,用鼠标右击Text1时能弹出 EditMenu菜单中的菜单项,并以鼠标指针坐标X为 弹出菜单的中心,可使用如下代码: Private Sub Text1_MouseDown(Butt
13、on As Integer, _ Shift As Integer, X As Single, Y As Single)If Button = 2 then PopupMenu EditMenu, 4, X, Y End Sub10.1.5 弹出菜单(4)这里,Button=2 表示按下鼠标右键,EditMenu 为编辑菜单名,4指定弹出菜单的位置。运行界面 如图10.5所示。图10.5 弹出菜单的运行界面 返回首页返回本节10.2 设计工具栏w 概述w 10.2.1 在ImageList控件中添加图像w 10.2.2 在Toolbar控件中添加按钮 w 10.2.3 为工具栏按钮编写事件过程
14、 w 10.2.4 菜单与工具栏综合应用举例 返回首页概述 (1)制作工具栏常用的方法是通过组合使用 Toolbar和ImageList控件来建立,二者都是 ActiveX控件,必须先将其添加到工具箱中才能使 用。添加的方法有两种: (1)选择【工程】菜单【部件】命令弹出对 话框,在对话框的【控件】选项卡中选中 Microsoft Windows Common Control 6.0选项, 单击【确定】。 (2)用鼠标右击工具箱,弹出快捷菜单,选【部 件】命令。后续操作同上。概述 (2)执行上述操作后,工具箱中将添加如图10.6所 示的9个图标,Toolbar和ImageList控件即在其中
15、。概述 (3)创建工具栏的步骤如下:(1)将ImageList控件添加到窗体上,然后在 ImageList控件中添加所需的图像。(2)将Toolbar控件添加到窗体上,在Toolbar控 件中创建Button(按钮)对象。(3)在ButtonClick事件中用Select Case语句对 各按钮进行相应的编程。在多文档界面(MDI)应用程序的开发中,工具栏 应放在MDI父窗体中。返回首页返回本节10.2.1 在ImageList控件中添加图像(1)ImageList控件包含了一个图像的集合,它专门 用来为其他控件提供图像库。特别是ListView, TreeView,TabStrip和Tool
16、bar等控件都是从其中 获取图像。在利用Toolabar控件制作工具栏时, 其中按钮的图像就是从ImageList的图像库中获得 。 在窗体上添加ImageList控件后,其默认名为 ImageList1,右击该控件,从弹出菜单中选择【 属性】,然后在【属性页】对话框选择【图像】 选项卡,见图10.7。 10.2.1 在ImageList控件中添加图像(2)图10.7 ImageList属性页【图像】选项卡 10.2.1 在ImageList控件中添加图像(3)其中:【索引】:表示每个图像的编号,在Toolbar的按 钮中引用。【关键字】:表示每个图像的标识名,在Toolbar 的按钮的引用。【图像数】:表示已插入的图像数目。【插入图片】按钮:插入新图像,图像文件的扩 展名为.ico、.bmp、.gif、.jpg等。【删除图片】按钮:删除选中的图像。10.2.1 在ImageList控件中添加图像(4)向ImgeList中添加图像的具体操作是 :单击【插入图片】按钮,这时会弹出【 选定图片