据我了解,当按下键盘按钮时,它应该为具有焦点的控件调用 KeyDown 事件。然后,父控件的 KeyDown,依此类推,直到它到达主窗体。除非 - 沿着链条之一的 EventHandlers 做了:
e.SuppressKeyPress = true;
e.Handled = true;
就我而言,KeyDown 事件永远不会到达主窗体。例如,我有表单-> 面板-> 按钮。
Panel 不提供 KeyDown 事件,但它不应该阻止它到达主窗体,对吗?
现在作为一种解决方法,我将每个控件设置为调用我编写的事件处理程序。我基本上试图阻止 Alt-F4 关闭应用程序,而是将其最小化。