我希望ComboBox在DataGridView单元格中更改值时处理该事件 .
有CellValueChanged事件,但是在我点击其他地方之前,那个事件才会触发DataGridView.
ComboBox SelectedValueChanged选择新值后,会立即触发一个简单的触发器.
如何将监听器添加到单元格内的组合框中?
我想在DataGridViewComboBoxColumn上处理此事件"SelectedIndexChanged",并将其设置在gridview的"EditingControlShowing"事件中.
问题:第一次尝试从comboBox中选择一个项目时,不会触发"SelectedIndexChanged"事件,但是在第二次选择该项目后,事件被触发,一切正常!
这是代码:
private void dgvRequest_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
ComboBox combo = e.Control as ComboBox;
if (combo != null)
{
if (dgvRequest.CurrentCell.ColumnIndex == col_ConfirmCmb.Index)
{
combo.SelectedIndexChanged -= combo_ConfirmSelectionChange;
combo.SelectedIndexChanged += combo_ConfirmSelectionChange;
return;
}
}
}
void combo_ConfirmSelectionChange(object sender, EventArgs e)
{
if (dgvRequest.CurrentCell.ColumnIndex != col_ConfirmCmb.Index) return;
ComboBox combo = sender as ComboBox;
if (combo == null) return;
MessageBox.Show(combo.SelectedText);// returns Null for the first time
}
Run Code Online (Sandbox Code Playgroud)