When you create the datagridview associate an event handler for its ‘EditingControlShowing’ event.
sampleDataGridView.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing);
And in the event handler add the selectedIndexChanged eventhandler to the combobox.
private void DataGridViewEditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { //If second column has the combobox. if (sampleDataGridView.CurrentCell.ColumnIndex == 2) { sampleComboBox = e.Control as ComboBox; if (myComboBox != null) { sampleComboBox.SelectedIndexChanged += sampleComboBox_SelectedIndexChanged; } }
And then, the selectedIndexChanged event would fire as expected.
private void sampleComboBox_SelectedIndexChanged(object sender, EventArgs e) { string selectedValue = ((ComboBox)sender).SelectedValue.ToString(); }