【发布时间】:2021-02-25 02:14:26
【问题描述】:
要获取热键Ctrl+A,我们可以在Form1_KeyDown中使用以下语句。
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
MessageBox.Show("Test");
}
要捕获Ctrl+Alt+A,我们可以使用:
if (e.Control && e.Alt)
{
if (e.KeyCode == Keys.A)
{
// Your code goes here
}
}
问题是如何捕捉Ctrl+A+B这样的热键?
【问题讨论】:
-
您的意思是
Ctrl+A, CTRL+B(CTRL+A后跟B,而CTRL键仍被按下 - 或者,CTRL键尚未释放)。 -
@Jimi 仍然按下
-
在 WinForms 中没有简单的方法可以做到这一点。您必须保留布尔字典并跟踪按下的键。或者,您可以导入 WPF 运行时并将
Keyboard.IsKeyDown与KeyDown事件结合使用。你也可以求助于 Win32 API 并使用GetKeyState -
这个“热键”是否应该只在您的应用程序中有效?