6

したがって、セルがクリックされたかどうかを確認するのは簡単です。

        DataGridView.CellClicked += cellClickedHandler;

そして、キーが押されたかどうかを確認するのは簡単です。

        DataGridView.KeyDown += keyPressedHandler;

これらの2つの機能を1つに組み合わせるにはどうすればよいのでしょうか。ユーザーコントロールがセルをクリックしたときに特定のアクションを実行したいと思います。私が知る限り、これらのイベントのアクションハンドラーは、2つの固有の独立した関数であり、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 に答える