我想检查是否在表单中按下了某个键,然后使用该键执行子程序。下面的代码仅在表单中没有其他控件时才有效。我应该怎么办?
Private Sub MainForm_KeyPress1(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
MsgBox(e.KeyChar)
End Sub
我想检查是否在表单中按下了某个键,然后使用该键执行子程序。下面的代码仅在表单中没有其他控件时才有效。我应该怎么办?
Private Sub MainForm_KeyPress1(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
MsgBox(e.KeyChar)
End Sub
您可以将KeyPreview
表单的属性设置为True
. 这样,您将捕获表单上的所有 KeyPress 事件(如果您没有设置to的Handled
属性,这些事件随后将由发生按键的控件处理)。KeyPressEventArgs
True
当此属性设置为 true 时,表单将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序完成对击键的处理之后,击键被分配给具有焦点的控件。例如,如果 KeyPreview 属性设置为 true,并且当前选定的控件是 TextBox,则在表单的事件处理程序处理击键后,TextBox 控件将接收被按下的键。要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的 KeyPress 事件处理程序中的 KeyPressEventArgs.Handled 属性设置为 true。
资料来源:MSDN