0

DataGridView に DataGridViewComboCell があります。

ユーザーがそのコンボ セル内の選択項目の 1 つをクリックしたときを知る必要があります。

これが発生したときに発生するイベントが見つかりません。

これを行うように聞こえる名前のイベントのほとんどは、ユーザーがフォーカスを変更するまで何もしません。

Microsoft が、ユーザーが何かを行うためにフォーカスを変更するのを待つ理由がわかりません。私は確かにこの動作を期待していません。私に割り当てられた QA スタッフはそうではありません。

誰かがこれをクリックしたときに Clicked() が起動しないなんて信じられません。ContentClicked やその他のクリックされたメソッドも同様です。

私が試したすべてのイベントは次のとおりです。CellContentClick、CellEndEdit、SelectionChanged、Click、CellStateChanged、CellClick、CellValueChanged。

ユーザーがフォーカスを変更するまで、それらのどれも変更されません!

4

1 に答える 1

1

SelectedIndexChangedのイベントを探しているのかもしれませんDataGridViewComboBoxCellDataGridViewComboBoxEditingControl次のように、でそのイベントを見つける必要があります。

//EditingControlShowing event handler for your dataGridView1
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e){
  ComboBox combo = e.Control as ComboBox;
  if(dataGridView1.CurrentCell.OwningColumn == column_you_want){
     combo.SelectedIndexChanged -= combo_SelectedIndexChanged;
     combo.SelectedIndexChanged += combo_SelectedIndexChanged;
  }
}
private void combo_SelectedIndexChanged(object sender, EventArgs e){
   //....
}
于 2013-10-22T21:15:22.113 に答える