実際、キランは を使用してそれを正したと思います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 に割り当てるすべての作業を行います。次に、メソッドに移動し、いくつかのコードとブレークポイントを追加して、メソッドが起動しているかどうかを確認する必要があります。