我需要在表单中捕获KeyUp事件(以切换“全屏模式”)。 这是我正在做的事情:
protected override void OnKeyUp(KeyEventArgs e)
{
base.OnKeyUp(e);
if (e.KeyCode == Keys.F12) this.ToggleFullScreen();
}
private void ToggleFullScreen()
{
// Snazzy code goes here
}
这段代码本来很好用,但是如果表单上的控件有焦点时就无效了。在那种情况下,我根本就收不到按键事件(试过使用OnKeyDown也不行)。
我可以从子控件处理KeyUp事件,但是表单上的控件是动态生成的,而且可能有很多个 - 每个控件都有自己的多个子控件。
有没有一种方法可以在屏幕上的每个控件上都执行此操作,而不必为每个控件生成事件处理程序呢?(使用递归��数当然可以做到这一点)