2017-08-07 22 views
0

我有一个winform应用程序。在应用程序中,我有一个带有多个按钮的面板。是否可以在一个中央位置以面板形式请求按键信号?

现在,当按钮没有焦点,我可以捕捉形式本身的keyPressed事件。但是,当按钮具有焦点形式(即使按钮不抓事件explecitely)只有他们得到了keyPressed事件,而不是形式。

现在我的问题是:是否有任何方法来集中按键行为(没有创建每个按钮的按键事件,并调用该事件的中心方法)

+0

分开差异:创建单个处理程序并将其附加到每个按钮的事件。一个由所有人调用的代码。 – DonBoitnott

+0

@DonBoitnott我知道这个方法。这意味着我将不得不为每个按钮使用按键事件。因此我想知道是否有可能避免这种情况 – Thomas

回答

0

在本质上仅1方法需要用适当的参数来定义: 示例:

private void Event_Key_Press_Check(object sender, KeyPressEventArgs e) 

然后,此方法只需要被放在如在事件中使用的方法的名称(形式设计),或添加为事件。

这样仅使用1方法。

因此没有更简单的方法,并且需要为每个按钮(而不是总是触发的1个中心事件)定义事件需求。

0

设置表单属性KeyPreviewtrue和设置按键处理。然后表单将在按钮之前处理这个事件。

KeyPreview MSDN documentation

0

我有同样的问题,这是很容易解决:)

入住这里:KeyPress at form level with controls

KeyPreview属性(表单中)正好被设置为True。通过这种方式,表单将在任何其他控件之前处理KeyPress事件,即使其中一个控件具有焦点

相关问题