- 零基础学Visual Basic第2版
- 李俊民 赵东等编著
- 662字
- 2024-12-20 23:53:31
4.14 焦点与Tab 顺序
在本书前面的内容中曾经提到过焦点。所有可见控件都可以获得焦点。例如文本框获得焦点的方法一是用鼠标单击文本框,二是在程序中使用文本框的SetFocus方法。除此之外,实际上窗体中所有可见对象还有一种获得焦点的方法,那就是使用键盘上的Tab键切换焦点。
大多数Windows的老用户对Tab键不陌生,用其可以切换选择窗体中的对象,这一功能对没有鼠标的Windows用户简直就是救命稻草。其实,在用Tab键时不难发现,焦点在对象上的移动是有顺序的。在Visual Basic中,使用对象的TabIndex属性设置对象获得焦点的顺序。下面举例说明设置对象TabIndex属性的意义。
例如,在窗体上画了3个控件,一个文本框和两个按钮,如图4.37所示。画控件的顺序是先画文本框,再画Command1按钮,然后画Command2按钮。运行程序后,首先文本框Text1会得到焦点,敲击一下Tab键后,焦点会落到Command1按钮上,第二次敲击Tab键时,焦点落到Command2按钮上,再次敲击Tab键焦点就会重新落到Text1上,如果一直敲击Tab键,焦点会按照上面的顺序不断地循环落到每一个对象上。
图4.37 Tab顺序实例
这时就会有一个问题:程序运行时能不能先让Command1按钮获得焦点,然后是Command2按钮,最后是Text1文本框。解决的方法就是设置控件的TabIndex属性。Visual Basic让对象获得焦点的标准如下。的TabIndex值小,谁就先获得焦点。TabIndex的最小值为0。所以解决问题的操作步骤如下。
(1)选中Command1按钮,在属性窗口里找到其TabIndex属性并设置为0。
(2)用同样的方法将Command2按钮和Text1文本框的TabIndex属性分别设置为1和2。
运行程序后就可以发现首先获得焦点的是Command1按钮,使用Tab键后第二个获得焦点的是Command2,最后才是Text1文本框。在Visual Basic中也可以屏蔽某对象获得焦点的能力,方法是将某对象的TabStop属性设置为False。