c#/ winforms:应用程序范围的键盘快捷键,可编辑控件除外

时间:2009-05-11 09:16:24

标签: c# winforms

在我的c#/ winforms应用程序中,我想做一些像应用程序范围的键盘快捷键一样的操作,应该在任何地方触发,除非焦点位于用户可以编辑文本的控件中,如文本框。

目前我正在覆盖此功能来执行此操作。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData);

如何为此添加一个例外,当用户处于可编辑的控件中时不会触发它?

谢谢!

1 个答案:

答案 0 :(得分:1)

我在这里看到了2个解决方案。

1)在每个可编辑控件中,处理所有键盘事件,并在eventArgs对象中,将Handled属性设置为true;

e.Handled = true;

2)在执行宽键盘快捷键之前,查找具有焦点的控件,如果是TextBox,则忽略它。每个表格中可能都有一种方法可以说明控制有什么重点。

第二种选择更清洁。我不提供代码,因为我现在没有打开Visual Studio,但是如果你需要更多特定的代码,你可以问。

PS:在这里,我为你做了一些谷歌搜索:How to Get FOcused Control?