Я думаю, что самым простым вариантом для вас будет обработать событие EditControlShowing , а затем обработать событие ComboBoxes SelectedIndexChanged
и делать то, что вы уже знаете, как делать.
Когдавы устанавливаете DataGridview
в коде, вы можете сделать это:
dataGridView1.EditingControlShowing += dataGridView1_EditingControlShowing;
, а затем реализовать обработчик, например:
void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox combo = e.Control as ComboBox;
if (combo != null)
{
// Both of these lines are essential, otherwise you will be handling the same event twice in some conditions
combo.SelectedIndexChanged -= combo_SelectedIndexChanged;
combo.SelectedIndexChanged += combo_SelectedIndexChanged;
}
}
Наконец, событие SelectedIndexChanged
обрабатывается точнотак, как вы хотите:
void combo_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox thisCombo = sender as ComboBox;
if (thisCombo != null)
{
Debug.Print(thisCombo.Text);
}
}