我有一个用户控件。在用户控件中,有一个 PictureBox 用尽了整个屏幕空间 (Dock.Fill)。我想捕捉键盘事件(例如,用于实现粘贴功能的 Ctrl-V)。
但是,PictureBox 没有任何关键事件。PictureBox下的下一层(即用户控件)会得到KeyUp事件吗?如果我将 KeyUp 事件处理程序添加到用户控件,那会起作用吗?我知道 WPF 有路由事件的解决方案。这在winforms世界中是如何工作的?
我有一个用户控件。在用户控件中,有一个 PictureBox 用尽了整个屏幕空间 (Dock.Fill)。我想捕捉键盘事件(例如,用于实现粘贴功能的 Ctrl-V)。
但是,PictureBox 没有任何关键事件。PictureBox下的下一层(即用户控件)会得到KeyUp事件吗?如果我将 KeyUp 事件处理程序添加到用户控件,那会起作用吗?我知道 WPF 有路由事件的解决方案。这在winforms世界中是如何工作的?
您可以在表单中接收事件。请参阅Form.KeyPreview。
当此属性设置为 true 时,表单将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序完成对击键的处理之后,击键被分配给具有焦点的控件
您可以使用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