0

我想检查是否在表单中按下了某个键,然后使用该键执行子程序。下面的代码仅在表单中没有其他控件时才有效。我应该怎么办?

Private Sub MainForm_KeyPress1(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
    MsgBox(e.KeyChar)
End Sub
4

1 回答 1

0

您可以将KeyPreview表单的属性设置为True. 这样,您将捕获表单上的所有 KeyPress 事件(如果您没有设置to的Handled属性,这些事件随后将由发生按键的控件处理)。KeyPressEventArgsTrue

当此属性设置为 true 时,表单将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序完成对击键的处理之后,击键被分配给具有焦点的控件。例如,如果 KeyPreview 属性设置为 true,并且当前选定的控件是 TextBox,则在表单的事件处理程序处理击键后,TextBox 控件将接收被按下的键。要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的 KeyPress 事件处理程序中的 KeyPressEventArgs.Handled 属性设置为 true。

资料来源:MSDN

于 2013-01-20T22:24:02.780 回答