6

我有一个用户控件。在用户控件中,有一个 PictureBox 用尽了整个屏幕空间 (Dock.Fill)。我想捕捉键盘事件(例如,用于实现粘贴功能的 Ctrl-V)。

但是,PictureBox 没有任何关键事件。PictureBox下的下一层(即用户控件)会得到KeyUp事件吗?如果我将 KeyUp 事件处理程序添加到用户控件,那会起作用吗?我知道 WPF 有路由事件的解决方案。这在winforms世界中是如何工作的?

4

2 回答 2

5

您可以在表单中接收事件。请参阅Form.KeyPreview

当此属性设置为 true 时,表单将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序完成对击键的处理之后,击键被分配给具有焦点的控件

于 2012-09-28T12:11:42.273 回答
1

您可以使用MouseUp, MouseEnter, MouseDown or MouseHover ....

关于鼠标按下的链接:http: //msdn.microsoft.com/en-us/library/system.windows.forms.control.mousedown.aspx

链接:http: //msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx

于 2012-09-28T12:08:03.053 回答