我目前正在使用Visual Studio,但我不知道这是否是一个小故障,但是当我进入表单属性并显示事件时,有两个事件分别称为KeyDown和 KeyUp。现在,当我对PictureBox
执行相同操作时,它的事件较少,并且没有[[KeyDown和KeyUp事件。 PictureBox
支持的事件少于其他事件吗?这是小故障吗?
Form1
属性的屏幕截图:PictureBox1属性的屏幕快照:
Form
级别拦截键事件,因为PictureBox
控件无法接收焦点并且缺少公开的键事件。[为此,首先在设计器中,或者在表单的构造函数中,将表单的KeyPreview
属性设置为true
:
this.KeyPreview = true;
然后,订阅KeyUp
事件:
this.KeyUp += MainForm_KeyUp;
最后,使用类似于下面的事件处理程序来拦截和处理关键事件:
private void MainForm_KeyUp(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.A: // Perform some action... break; case Keys.B: // Perform some action... break; case Keys.End: // Perform some action... break; // etc... } }
如果您打算从事件处理程序中“使用”键,则可以如下设置
Handled
对象的KeyEventArgs
属性:
e.Handled = true;