VisualBasic属性、方法和事件六
设置 Tab 键顺序
例如,假设您建立了两个名称为 Text1 和 Text2 的 TextBox,然后又建立了一个名称为 Commandl 的 CommandButton。应用程序启动时,Text1 具有焦点。按 TAB 键将使焦点按控件建立的顺序在控件间移动,如图 3.20 所示。
设置 TabIndex 属性将改变一个控件的 tab 键顺序。 控件的 TabIndex 属性决定了它在 tab 键顺序中的位置。按照缺省规定,第一个建立的控件其TabIndex 值为 0,第二个的 TabIndex 值为 1,以此类推。当改变了一个控件的 tab 键顺序位置,Visual 自动为其它控件的 tab 键顺序位置重新编号,以反映插入和删除。例如,要使 Command1 变为 tab 键顺序中的首位,其它控件的 TabIndex 值将自动向上调整,如下表所示。
因为编号从0开始,TabIndex的最大值总是比tab键顺序中控件的数目少 1。即使TabIndex属性值高于控件数目,Visual Basic也会将这个值转换为控件数减一。
注意 不能获得焦点的控件以及无效的和不可见的控件不具有 TabIndex 属性,因而不包含在 tab 键顺序中。按 TAB 键时,这些控件将被跳过。
在 Tab 键顺序中删除控件
通常,运行时按 TAB 键能选择 tab 键顺序中的每一控件。将控件的TabStop 属性设为 False (0) ,便可将此控件从 tab 键顺序中删除。
TabStop 属性已置为 False 的控件,仍然保持它在实际 tab 键顺序中的位置,只不过在按 tab 键时这个控件被跳过。
注意 一个 OptionButton 组只有一个 tab 站。选中的按钮(即 Value 值 为True 的按钮)的 TabStop 属性自动设为 True,而其它按钮的 TabStop属性为 False。
菜单基础
如果应用程序要为用户提供一组命令,菜单提供一种方便的给命令分组的方法,并使用户容易访问这些命令。
图 3.21 举例说明了无标题窗体的菜单界面元素。
菜单栏立即出现在窗体的标题栏下面,并包含一个或多个菜单标题。当单击一个菜单标题(如“文件”),包含菜单项目的列表就被拉下来。菜单项可以包括命令(如“新建”和“退出”)、分隔条和子菜单标题。用户看到的每个菜单项和在“菜单编辑器”中定义的一个菜单控件对应(“菜单编辑器”将在本章后面讨论)。
要使您的应用程序简单好用,应该将菜单项按其功能分组。例如,图 3.21 中与文件有关的命令“新建”,“打开”,和“另存为”都列入“文件”菜单。有些菜单项目直接执行动作,如“文件”菜单中的“退出”菜单项将关闭应用程序。其它菜单项显示一个对话框,即要求用户提供应用程序执行动作所需信息的窗口。应该在这些菜单项后加上省略符 (...)。例如,当从“文件”菜单中选择“另存为...时”,出现“文件另存为”对话框。
菜单控件是一个对象;与其它对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置 Caption 属性、Enabled 和 Visible 属性、Checked 属性以及其它属性。菜单控件只包含一个事件,即 Click 事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。
详细信息 关于菜单控件的详细信息,请参阅第六章“创建用户界面”中的“用菜单编辑器创建菜单”。
弹出式菜单
弹出式菜单是显示于窗体之上,独立于菜单栏的浮动式菜单,如图 3.22 所示。显示在弹出式菜单上的项取决于鼠标右键按下时指针的位置,因此,弹出式菜单又称为上下文菜单(在 Windows 95 中,击鼠标右键可激活上下文菜单。)应该用弹出式菜单提供一种访问公共的上下文命令的高效方法。例如,用鼠标右键单击一个 TextBox,将会出现一个上下文菜单(如图 3.22 所示)。
任何至少有一个菜单项的菜单,运行时都可以显示为弹出式菜单。使用PopupMenu 方法可显示弹出式菜单。
详细信息 关于弹出式菜单的详细信息,请参阅第六章“创建用户界面”中的“用菜单编辑器创建菜单”。
使用菜单编辑器
使用“菜单编辑器”,可向现存的菜单中增加新命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。“菜单编辑器”的主要优点是使用方便。可以在只用很少编程的全交互方式中自定义菜单。
要显示“菜单编辑器”,请
在“工具”菜单中选择“菜单编辑器这将打开“菜单编辑器”,如图 3.23 所示
大多数菜单控件属性可用“菜单编辑器”设置,同样,所有的菜单属性也可以在“属性”窗口中得到。通常,在“菜单编辑器”中建立菜单,但要快速改变单个属性,一般使用“属性”窗口。
详细信息 关于创建菜单和使用“菜单编辑器”的详细信息,请参阅第六章“创建用户界面”中的“用菜单编辑器创建菜单”。
用对话框提示用户
在基于 Windows 的应用程序中,对话框被用来提示用户提供应用程序继续运行所需的数据或者向用户显示信息。对话框是一种特殊类型的窗体对象,可用以下三种方法之一建立:
使用 MsgBox 或 InputBox 函数的代码可以创建预定义对话框。
使用标准窗体或自定义已存在的对话框创建自定义对话框。
使用 CommonDialog 控件可创建标准对话框,如“打印”和“打开文件”。
图 3.24 是利用 MsgBox 函数创建预定义对话框的例子。
当在代码中调用 MsgBox 函数时,该对话框被显示。代码如下:
MsgBox "Error encountered while trying to open file," & vbCrLf & "pleaseretry.", vbExclamation, "Text Editor"
需要给 MsgBox 函数提供三条信息或三个参数:消息文本、决定对话框类型的常数(numeric 值)和标题。由于样式可以使用按钮和图标的各种各样组合,所以创建对话框更加容易。
由于大多数对话框需要用户的交互作用,所以通常显示为模态对话框。在继续使用应用程序的其它部分以前,必须关闭(隐藏或卸载)模态对话框。例如,若在切换到其它窗体或其它对话框前必须单击“确定”或者“取消”,那么这个对话框就是模态对话框。
非模态对话框不需要关闭就可以使焦点在该对话框和其它窗体之间移动。对话框显示时,可以在当前应用程序的其它地方继续工作。非模态对话框很少;通常因为应用程序继续前需要响应才显示对话框。Visual Basic 中“编辑”菜单的“查找”对话框就是一个非模态对话框。使用非模态对话框显示常用的命令或信息。
详细信息 关于创建对话框的详细信息,请参阅第六章“创建用户界面”。