图片框不支持键盘事件吗?

One*_*tig 1 c# forms events properties picturebox

我目前正在使用视觉工作室,不知道这是否是一个小故障,但是当我进入表单属性并显示事件时,有两个事件称为KeyDownKeyUp。现在,当我对一个图片框执行相同操作时,它的事件更少,没有KeyDownKeyUp事件。图片框支持的事件少于其他事件吗?这是小故障吗?

Form1属性的屏幕快照:

在此处输入图片说明

PictureBox1属性的屏幕截图:

在此处输入图片说明

Lem*_*eed 5

如此处其他人所述,在这种情况下捕获键盘事件的最合适方法是在Form级别上拦截键事件,因为PictureBox控件无法接收焦点并且缺少公开的键事件。

为此,首先将KeyPreview表单的属性设置为true设计器内,或者设置为表单的构造函数内:

this.KeyPreview = true;
Run Code Online (Sandbox Code Playgroud)

然后,订阅KeyUp活动:

this.KeyUp += MainForm_KeyUp;
Run Code Online (Sandbox Code Playgroud)

最后,使用类似于以下内容的事件处理程序来拦截和处理关键事件:

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...

    }
}
Run Code Online (Sandbox Code Playgroud)


如果您打算从事件处理程序中“使用”键,则可以如下设置对象的Handled属性KeyEventArgs

e.Handled = true;
Run Code Online (Sandbox Code Playgroud)