【发布时间】:2009-06-19 14:36:40
【问题描述】:
我需要在我的表单中捕获 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 事件,但窗体上的控件是动态生成的,并且可能有很多 - 每个都有很多自己的子控件。
有没有什么方法可以在不为屏幕上的每个控件生成事件处理程序的情况下做到这一点(我当然可以使用递归函数来做到这一点)?
【问题讨论】:
标签: c# .net winforms event-handling