我有一个winform应用程序。在应用程序中,我有一个带有多个按钮的面板。是否可以在一个中央位置以面板形式请求按键信号?
现在,当按钮没有焦点,我可以捕捉形式本身的keyPressed事件。但是,当按钮具有焦点形式(即使按钮不抓事件explecitely)只有他们得到了keyPressed事件,而不是形式。
现在我的问题是:是否有任何方法来集中按键行为(没有创建每个按钮的按键事件,并调用该事件的中心方法)?
我有一个winform应用程序。在应用程序中,我有一个带有多个按钮的面板。是否可以在一个中央位置以面板形式请求按键信号?
现在,当按钮没有焦点,我可以捕捉形式本身的keyPressed事件。但是,当按钮具有焦点形式(即使按钮不抓事件explecitely)只有他们得到了keyPressed事件,而不是形式。
现在我的问题是:是否有任何方法来集中按键行为(没有创建每个按钮的按键事件,并调用该事件的中心方法)?
在本质上仅1方法需要用适当的参数来定义: 示例:
private void Event_Key_Press_Check(object sender, KeyPressEventArgs e)
然后,此方法只需要被放在如在事件中使用的方法的名称(形式设计),或添加为事件。
这样仅使用1方法。
因此没有更简单的方法,并且需要为每个按钮(而不是总是触发的1个中心事件)定义事件需求。
设置表单属性KeyPreview
到true
和设置按键处理。然后表单将在按钮之前处理这个事件。
我有同样的问题,这是很容易解决:)
入住这里:KeyPress at form level with controls
的KeyPreview
属性(表单中)正好被设置为True
。通过这种方式,表单将在任何其他控件之前处理KeyPress
事件,即使其中一个控件具有焦点
分开差异:创建单个处理程序并将其附加到每个按钮的事件。一个由所有人调用的代码。 – DonBoitnott
@DonBoitnott我知道这个方法。这意味着我将不得不为每个按钮使用按键事件。因此我想知道是否有可能避免这种情况 – Thomas