如何为DataGridView创建自定义快捷方式
本文关键字:自定义 快捷方式 创建 DataGridView | 更新日期: 2023-09-27 18:16:01
我试图在Windows窗体的DataGridView
控件中创建一个快捷键(CTRL+J)。快捷方式应该简单地完成向下箭头所做的事情(即,在大多数情况下,将选择更改为下一项)。
我试图通过覆盖形式的FormKeyDown
事件和使用SendKeys.SendWait("{DOWN}")
来处理CTRL+J,如果FormKeyDown
接收J键和CTRL作为修饰符。
然而,当我发送{DOWN}
键时,它的行为就像Ctrl+Down,因为用户仍然持有Ctrl键!
我如何创建自定义快捷方式,使其具有与DataGridView
已经支持的快捷方式完全相同的行为?
您应该避免使用SendKeys
模仿用户输入,而是使用DataGridView
类上可用的正确API进行编程选择。您可以查看以下页面的程序化选择部分:
Windows窗体DataGridView控件中的选择模式
在实现可编程选择代码时,需要考虑为数据网格视图配置的SelectionMode
。
或者,您可以从DataGridView
子类化并实现自定义快捷方式,以便它们重定向到现有的快捷方式。例子:
public class MyDataGridView : DataGridView
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.J))
{
this.ProcessDownKey(Keys.Down);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}