VB中如何在失去焦点时通过按键再次获得焦点?

2024-11-30 08:19:31
推荐回答(4个)
回答1:

不是很明白LZ的意思,但是下面这段代码也许可以帮你。
另外,使控件获得焦点用 “控件.setfocus” 语句。
keycode是按键的扫描码,它能区分用户按下了哪个键。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 Then Print "按下shift键"; KeyCode
If Shift = 2 Then Print "按下ctrl键"; KeyCode
If Shift = 3 Then Print "按下shift + ctrl键"; KeyCode
If Shift = 4 Then Print "按下alt键"; KeyCode
If Shift = 5 Then Print "按下shift + alt键"; KeyCode
If Shift = 6 Then Print "按下alt + ctrl键"; KeyCode
If Shift = 7 Then Print "按下shift + ctrl + alt键"; KeyCode
End Sub

----------------------------------------
这个好办啊。
加载两个窗体,然后在窗体1的代码窗体中编写
Private Sub Form_Click()
Form2.SetFocus
End Sub

Private Sub Form_Load()
Form2.Show
End Sub
窗体2 的代码窗口中编写
Private Sub Form_Click()
Form1.SetFocus
End Sub

回答2:

这个要先为你那个程序用RegisterHotKey等API注册一个热键,在检测到按了那个热键时用SetFocusAPI&等API使程序获得焦点~

句柄会找吧~找到句柄后用SetFocusAPI& hwnd来设置焦点到那个窗口~要先声明API:
Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)

在其它程序中的话,不属于同一线程就不会起作用了~可能还要搞插入什么的~

回答3:

很好办的,用setfocus方法

Private Sub Command1_Click()
Command2.SetFocus
End Sub

Private Sub Command2_Click()
Command1.SetFocus
End Sub

回答4:

控件.事件()
控件.SetFocus
End Sub