実際、キランは を使用してそれを正したと思いますCellContentClick。これを使用すると、セルの空のスペースがクリックされたときに起動せず、実際のコンテンツがクリックされたときにのみ起動します。したがって、 があるDataGridViewLinkColumn場合は、リンクがクリックされたときに起動します。がある場合DataGridViewTextBoxColumnは、セル内のテキストがクリックされたときに起動します。空のスペースをクリックしても発火しません。また、セルが空の場合、そのセルではまったく発火しません。
このCellClickイベントは、空のセルを含め、セルの任意の部分がクリックされるたびに発生します。@chessofnerd、なぜそれがうまくいかなかったのかわかりませんが、確認するためにこれをテストしました.少なくとも私にとっては、期待どおりに機能しています.
CellContentClickキラン、そもそもなぜあなたが働いていなかったのだろうと思います。最初に頭に浮かぶのはDataGridViewCellEventHandler、グリッドビューの CellContentClick プロパティに新しいものを追加していることを確認することです。たとえば、グリッドビューのタイトルが gridVendorInfo の場合、最初に次のコードを使用する必要があります。
this.gridVendorInfo.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridVendorInfo_CellContentClick);
そして今、実際にそれをキャッチするには、コードにその正確なメソッドを含める必要があります。
private void gridVendorInfo_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            string vendorName = "";
            if (e.ColumnIndex == 0)
            {
                vendorName = gridVendorInfo.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            }
        }
グリッドビューの CellContentClick イベントに新しいイベント ハンドラーを割り当てず、まったく同じスペルのメソッドを追加しないと、起動しません。うまくいけば、それは役に立ちます!フォームに移動し、グリッドビューをクリックして、[プロパティ] ウィンドウの [イベント] タブに移動し、CellContentClick を見つけて、その右側のスペースをダブルクリックする方がはるかに簡単です。VS は、メソッドを作成し、新しいイベント ハンドラーを gridvew に割り当てるすべての作業を行います。次に、メソッドに移動し、いくつかのコードとブレークポイントを追加して、メソッドが起動しているかどうかを確認する必要があります。