Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.Control Then
MessageBox.Show("aaaa")
End If
End Sub
如您所见,我的表单将检查按下控制键的时间。 但它不起作用。为什么呢?
答案 0 :(得分:16)
我现在不在电脑附近所以我无法测试这个,但是当我想要在表单上获取关键事件时,我会将Form1.KeyPreview设置为True(或类似的东西)。
答案 1 :(得分:1)
工作正常。我假设你的表单中有其他控件。其中一个将获得焦点,而不是形式。键盘输入仅进入具有焦点的控件。
您可以将表单的KeyPreview属性设置为True。 Winforms的方法是覆盖ProcessCmdKey()方法。
答案 2 :(得分:0)
您需要在加载表单时将 KeyPreview 设置为true,它应该可以正常工作
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.KeyPreview = True
End Sub
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
MsgBox(e.KeyChar)
End Sub