听键盘快捷键 (C#)

3

当有人使用键盘快捷键,如Ctrl+G时,我该如何运行一个方法?

该应用程序是一个Windows表单应用程序,我只想在表单被激活时捕获它。


1
有关于这是一个Winforms应用程序,Silverlight,WPF,Console App,ASP.NET等的提示将会有所帮助。 - Martin Peck
1
你想要进行全局键盘钩子并拦截任何应用程序中的快捷方式,还是只在你特定的应用程序中? - Franci Penov
感谢提示。添加了更多细节 :) - Hannoun Yassir
2个回答

4

键盘快捷键通常被称为“命令键”。如果您想在孩子控制之前获得按键的第一次机会,则最好的方法是覆盖表单上的ProcessCmdKey方法。


1

查看您的窗体上的 OnKeyPress 方法或窗体的 KeyPress 事件。

像这样覆盖 OnKeyPress...

protected override void OnKeyPress(KeyPressEventArgs e) { ... }

...并查看KeyPressEventArgs以查看按下了哪个键以及是否与Ctrl一起按下。

这个SO答案展示了如何使用KeyPress事件... C#中测试'Ctrl'键按下


如果您有子控件需要使用键盘焦点,这种方法将无法正常工作。 - Tergiver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接