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

问题描述 投票:1回答:3

我目前正在使用Visual Studio,但我不知道这是否是一个小故障,但是当我进入表单属性并显示事件时,有两个事件分别称为KeyDown KeyUp。现在,当我对PictureBox执行相同操作时,它的事件较少,并且没有[[KeyDown和KeyUp事件。 PictureBox支持的事件少于其他事件吗?这是小故障吗?

Form1属性的屏幕截图:

enter image description here

PictureBox1属性的屏幕快照:

enter image description here

c# forms events properties picturebox
3个回答
1
投票
这不是小故障。它是这样。您不键入PictureBox。如果您需要通过按键完成某些任务,请仅通过表单进行路由

5
投票
正如这里的其他人所述,在这种情况下,捕获键盘事件的最合适方法是在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;


0
投票
PictureBox用于显示图像,因此不需要键盘输入。它不会获得焦点,并且不会与键盘交互。
© www.soinside.com 2019 - 2024. All rights reserved.