VB文本框也玩快捷键
为文本框TextBox 创建快捷键。
VB中使用控件时有一种方便的方法是利用快捷键来完成,但有时用文本框时却享受不到这种便利,为什么呢?添加在窗体上的控件均在其Tabindex 属性中记载其加载顺序,程序运行时焦点按Tabindex 属性规定的顺序在控件间跳转。而为了简化操作,可VB中为任何具有 caption的属性的控制创建快捷键,这通过caption 属性中在想作为快捷键的字母前加&号实现。但有一个问题值得注意,而类似文本框这样的控件无caption 这样的属性,所以VB中的文本框没有快捷键,有时为了输入数据,需用鼠标点一下,如果控件多,不用鼠标就要多次用Tab键,那能不能给它设一个命令按钮类似的快捷键呢?
方法一:偷天换日
使用些法,就是用可以设置快捷键的控件来设上,但最终的焦点要放在文本框上。为 lable创建快捷键,标签 Tabindex 属性设置比文本框小1,又因为label 不能接收按点,焦点会自动跳至文本框。这当于为文本框创建了快捷键。具体步骤如下: (1) 首先绘制标签,再绘制文本框。或随意绘制各种控制,将标签 Tabindex 属性设置比文本框小1; (2) 在标签的caption 属性中使用“&”号设定快捷键,&T表示alt和T键为快捷键。这样就相当于为文本框设定了快捷键,当你按下标签框的快捷键时,焦点就会跳至文本框上。
方法二:编程转化法
这种方法是思路是将焦点从其他控件转到文本框上。假设窗体上有一个命令按钮command1和一个文本框,则焦点在命令按钮上时,只要用下面的代码就可以完成焦点转化了!
Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyAscii = 97 Then '97代表字母a
Text1.SetFocus
End If
End Sub
还有一种更通用的代码加法,将代码加给窗体的keyDown事件,但这要有个前提,Form的KeyPreview属性设为True。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'将KeyPreview设为True
If Shift = 4 And KeyCode = 65 Then 'ALT+a
Text1.SetFocus End IfEnd Sub
(上代码在VB60 Win XP下调试通过)
这样,字母a,Alt+a和Alt+T就成了转向文本框的快捷键。
(赵玉勇 刘红)


0 Comments:
发表评论
<< Home