
正文
vb.net组合键判断 vbs组合键
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.NET组合键
直接设置貌似不行 可以在窗体的 KeyDown事件里面写Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("快捷键设置成功")
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Shift And e.KeyCode = Keys.C Then
Button1_Click(sender, e)
End If
End Sub
End Class
相关问答
Q1: VB中如何判断组合键Ctrl+C键?
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
'让窗体响应键盘事件
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And chr(keycode)="C" then
msgbox "你按下了ctrl + C"
end if
End Sub
'当ctrl键被按下 和 “C”键被按下 弹出提示信息 "你按下了ctrl + C"
'keydown是键盘按下事件 里面的shift的值为:
'Shift=1 按了 Shift
'Shift=2 按了 Ctrl
'Shift=3 按了 Shift+Ctrl
'Shift=4 按了 Alt
'Shift=5 按了 Shift+Alt
'Shift=6 按了 Ctrl+Alt
'Shift=7 按了 Alt+Shift+Ctrl
'就是当Alt+Shift+Ctrl都被按下的时候 shift返回值为7
'当shift=0 时 表示什么也没有被按下
Q2: vb.net 怎么知道按下了多个按键
用API GetKeyboardState vb.net组合键判断,判断所有vb.net组合键判断的键里哪些被按下了。
下面vb.net组合键判断的是判断键盘灯的状态
Public Class NativeMethods
Private Shared keyState() As Byte
DllImport("user32.dll") _
Private Shared Function GetKeyboardState(ByVal keyState() As Byte) As Boolean
End Function
Private Shared Sub Update()
keyState = New Byte(256) {}
Dim result As Boolean = GetKeyboardState(keyState)
' Check for error:
If result = False Then
Debug.WriteLine("GetKeyBoardState error: " Marshal.GetLastWin32Error)
Throw New Exception("GetKeyBoardState error: " Marshal.GetLastWin32Error)
End If
End Sub
Public Enum LightState
Off
[On]
End Enum
' Example - the keyboard lights...
Public Shared ReadOnly Property CapsLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.CapsLock) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
Public Shared ReadOnly Property NumLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.NumLock) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
Public Shared ReadOnly Property ScrollLockState() As LightState
Get
Update()
Dim isOn As Boolean = (keyState(Keys.Scroll) = 1)
Return IIf(isOn, LightState.On, LightState.Off)
End Get
End Property
End Class
Q3: VB.NET键盘Hook成功后拦截不了组合键
最简单的就是把属性改一下,效果跟无框的差不多。
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
Me.ControlBox = False
Me.MaximizeBox = False
Me.Text = ""
至于hook的问题,它确实是比系统慢了一步得到消息,当前线程或全局的都一样,不过你可以先拦截Windows键或者Up键其中一键来阻拦组合键。
vb.net组合键判断的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbs组合键、vb.net组合键判断的信息别忘了在本站进行查找喔。






