我需要在窗体中捕获KeyUp事件(以切换“全屏模式”)。这是我在做什么:当子控件拥有焦点时,在窗体上捕获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事件,但表单上的控件是动态生成的,并且可能有很多 - 每个子控件都有自己的子项。
有没有办法做到这一点,而无需为屏幕上的每个控件生成事件处理程序(我肯定可以使用递归函数)?
简短而甜美。我喜欢! – Joseph 2009-06-19 14:47:50