vb牛人进 关于快捷键的

来源:百度知道 编辑:UC知道 时间:2024/06/20 20:48:56
Private Sub Command2_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 And KeyCode = vbKeyA Then
Call Command1_Click
End If
End Sub
这个只能在按钮有焦点的情况下有用
而设置焦点可以用Command1.SetFocus
但是如果我还有一个Command2 那么要怎么样才能使Command1与Command2
同时有焦点
或者说Command1 的快捷键是SHIFT+A Command2的快捷键是SHIFT+B
只要在程序打开的时候都能用这两个快捷键?

首先,Command1与Command2 是不可能同时有焦点的

其次,你的问题可以用这种方法解决,而不需要写代码.
就是将Command1的Caption变为Command1&A,Command2的Caption变为Command2&B,
所不同的就是变成了ALT+A 和 ALT+B,代码全部省略了.

再次,如果你一定要用你最初的方法,那么写以下代码
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift <> 1 Then Exit Sub

Select Case KeyCode
Case vbKeyA
Call Command1_Click
Case vbKeyB
Call Command2_Click
.
.
.
End Select
End Sub

然后,在窗体的每一个控件的Form_KeyDown事件里加上以下代码
call Form_KeyDown(KeyCode,Shift )

如:你的Command2_KeyDown改为以下
Private Sub Command2_KeyDown(KeyCode As Integer, Shift As Integer)
call Form_KeyDown(KeyCode,Shift )
End Sub

一个窗口同一时刻只能有一个控件获得焦点;

如果说是快捷键,你就可用控件名&F.这个快捷键是ALT+F
如"退出",你设置成"退出 &C"就可以了.

很简单,你把要做的工作放到窗体的KEYDOWN事件里做不就OK了吗?在窗体上敲什么键相当与哪个按钮的CLICK事件,注意,要把窗体的KEYPREVIEW属性调整为TRUE;

放到