6

所以很容易检查一个单元格是否被点击过:

        DataGridView.CellClicked += cellClickedHandler;

并且很容易检查是否按下了一个键:

        DataGridView.KeyDown += keyPressedHandler;

我想知道如何将这两个功能合二为一?我想在用户控件单击单元格时执行特定操作,据我所知,这些事件的操作处理程序是两个独特的独立函数,传递给 cellClickedHandler 的参数不允许我获取状态键盘和任何可能与鼠标点击一起触发的按键。

4

1 回答 1

7
   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!");
        }
    }
于 2012-10-06T00:24:04.600 回答