因此,检查单元格是否被单击时很容易:
DataGridView.CellClicked += cellClickedHandler;
并且很容易检查是否按下了键:
DataGridView.KeyDown += keyPressedHandler;
我想知道如何将这两个功能合二为一?我想在用户控件单击一个单元格时执行特定操作,据我所知,这些事件的动作处理程序是两个独特的独立函数,传递给cellClickedHandler的参数不允许我获取状态键盘和任何可能与鼠标点击一起触发的按键。
答案 0 :(得分:5)
private void cellClicked(object sender, DataGridViewCellMouseEventArgs e)
{
if(e.Button == MouseButtons.Right) // right click
{
if (Control.ModifierKeys == Keys.Control)
System.Diagnostics.Debug.Print("CTRL + Right click!");
else
System.Diagnostics.Debug.Print("Right click!");
}
if (e.Button == MouseButtons.Left) // left click
{
if (Control.ModifierKeys == Keys.Control)
System.Diagnostics.Debug.Print("CTRL + Left click!");
else
System.Diagnostics.Debug.Print("Left click!");
}
}