winforms中的键盘事件传播

use*_*184 6 c# keyboard-events winforms

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

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

Ale*_*lex 5

您可以在表格中收到活动.请参见Form.KeyPreview.

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