【发布时间】:2018-02-15 10:08:49
【问题描述】:
我需要在键盘上捕获一个按键组合,以便我可以覆盖标准功能,我尝试了以下方法:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
{
MessageBox.Show("Hello");
}
}
但是当按下Ctrl+A 时,消息不会被触发。最终目标是覆盖Form1 内DataGridView 中的Windows 快捷方式“全选”,以确保在表单窗口中按下Ctrl+A 时仅选择某些行。
【问题讨论】:
-
试试
e.Modifiers == Keys.Control && e.KeyCode == Keys.A -
分配
Form1的KeyPreview = true属性 -
谢谢你,虽然有一个注意事项...起初它不起作用,因为我将它设置在 Form KeyDown 事件而不是 DataGridView KeyDown 事件下。似乎当表单中存在 DataGridView 时,它会自动挂钩 Ctrl+A 快捷方式。请发布您的答案,以便我可以选择它作为解决方案;)
-
@dmitry-bychenko 谢谢,我想这解决了我刚才描述的问题?