winforms中的键盘事件传播

时间:2012-09-28 12:04:22

标签: c# winforms keyboard-events

我有一个用户控件。在用户控件中,有一个PictureBox占用整个屏幕区域(Dock.Fill)。我想捕获键盘事件(例如,Ctrl-V用于实现粘贴功能)。

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

2 个答案:

答案 0 :(得分:5)

您可以在表单中收到该活动。请参阅Form.KeyPreview

  

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

答案 1 :(得分: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