2010-11-23 5 views
1

ビジュアルスタジオで作業していて、ユーザーがダブルクリックしたときにDataGridViewセルから情報を取得しようとしています。私は基本的に他のClickイベントと同じようにCellDoubleClickイベントを設定していますが、動作していないようです。Visual C# - イベントハンドラをCellDoubleClickイベントに関連付けます。

コード:

のForm1.cs

private void dataGridView1_CellDoubleClick(Object sender, DataGridViewCellEventArgs e) 
    { 

     System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); 
     messageBoxCS.AppendFormat("{0} = {1}", "ColumnIndex", e.ColumnIndex); 
     messageBoxCS.AppendLine(); 
     messageBoxCS.AppendFormat("{0} = {1}", "RowIndex", e.RowIndex); 
     messageBoxCS.AppendLine(); 
     MessageBox.Show(messageBoxCS.ToString(), "CellDoubleClick Event"); 
    } 

Form1.Designer.cs

this.dataGridView1.CellDoubleClick += new System.EventHandler(this.dataGridView1_CellDoubleClick); 

の該当コードI」は、言うForm1.Designerコードのエラーを取得しています'dataGridView1_CellDoubleClick'のオーバーロードはデリゲート 'System.EventHandler'と一致しません。

Hこんにちは、ダブルクリックが正しく機能するようにすることはできますか?おかげさまで

答えて

2

イベントはDataGridViewCellEventHandlerで、 イベントハンドラはありません。

デザイナを使用してイベントハンドルを追加すると、自動的に正しいデリゲートタイプが使用されます。
デザイナー生成コードを手動で編集しないでください。

一般に、イベントハンドラを追加するときは、明示的にデリゲートを作成しないでください。
代わりに、あなたは

myGrid.CellDoubleClick += MyGrid_CellDoubleClick; 
+0

[OK]を書くことができ、私は、Visual Studioでひどく苦手と私は仕事にダブルクリックを取得しようとしている私の知恵の終わりに一種のでした。あなたのコメントを読んだ後、私はデザイナーに近づき、イベントボタンを見つけました。今それは動作します。ありがとう。 – Rupert

+0

時間がある場合は、私が5歳だったかのように説明してください。なぜ+ =新しいEventHandler(MyGrid_CellDoubleClick)を単純に行うことができないのですか?このイベントを処理するには、私はそれを取得しません。 :) – JazzCat

+0

@ JazzCat:そのイベントは別のタイプとして宣言されているためです。 https://msdn.microsoft.com/en-us/library/ms173171 – SLaks

関連する問題