2012-01-18 9 views
2

DataGridViewにボタン列があり、Button.Clickイベントを処理しようとしていますが、ボタンをクリックしても何も起こりません。どんな助け?datagridviewボタン列Winforms

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    MessageBox.Show(e.ColumnIndex.ToString()); 
    if (e.ColumnIndex == 5) 
    { 
     MessageBox.Show((e.RowIndex + 1) + " Row " + (e.ColumnIndex + 1) + " Column button clicked "); 
    } 
} 
+0

こんにちは@pikk、あなたはイベントがまったく発生しないことを意味しますか? –

+0

まったく、ボタンをクリックしても何も起こりません – pikk

答えて

2

私はあなたのサンプルを試してみました。あなたは本当にあなたのDataGridViewにイベントをバインドしましたか?

<YourFormName>.Designer.csクラスのInitializeComponent()メソッドを確認してください。 はそれが本当に

this.dataGridView1.CellClick += 
    new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick); 

を持っていました、あなたは、コード内の別の場所でのハンドラを削除しませんか?

をDataGridView.CellClickかDataGridView.CellContentClickイベントを処理、ユーザーボタンのクリックに応答するには:

DataGridViewButtonColumn MSDNページは言うためにこれを持っています。イベントハンドラでは、DataGridViewCellEventArgs.ColumnIndexプロパティを使用して、ボタンの列にクリックが発生したかどうかを判断できます。 DataGridViewCellEventArgs.RowIndexプロパティを使用して、ボタンのセルでクリックが発生したかどうかと、列のヘッダーではないかどうかを判断できます。

0

イベントが正しく登録されていないようです。デザイナーからDataGridViewコントロールを選択し、Eventsの下にPropertiesを選択してください。CellClickイベントにエントリがあるかどうかを確認してください。そうでない場合は、イベントをリストするドロップダウンがあります。

1

私は、c#windowsフォームのdatagridviewの各行にボタンがあることを明らかにする。 DataGridviewのボタンクリックイベントを取得するには、私のためにうまくいったサンプルのC#コードを表示してください!下記の罰金働いたのDataGridViewのボタンクリックイベントの私のC#のコードです:

private void dgTasks_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     var button = (DataGridView)sender; 
     if (button.Columns[6] is DataGridViewColumn && e.RowIndex >= 0) 
     { 
     MessageBox.Show("You have clicked Cancel button of a row of datagridview ", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 
     } 

どこdgTasksは、C#のWinFormsの中の私のDataGridViewの名前です。 btnCancel、ヘッダテキスト:とテキストをCANCEL:キャンセルbutton.Columns [6] iは名前ボタン列が私のDataGridViewの列数です。 これは単なるサンプルです!あなたはそれが有用であることを願っています!

関連する問題