捕获数据网格视图组合单元格答案更改事件

本文关键字:答案 单元格 事件 组合 视图 数据 数据网 网格 | 更新日期: 2023-09-27 18:36:38

我在 DataGridView 中有一个 DataGridViewComboCell。

我需要知道用户何时单击了该组合单元格中的一个选择。

我找不到发生这种情况时触发的事件。

对于大多数名称听起来像是会执行此操作的事件,在用户更改焦点之前,它们不会执行任何操作。

我不知道为什么Microsoft等待用户改变焦点来做某事。我当然不希望这种行为。分配给我的QA人员肯定没有。

我不敢相信当有人点击这个时 Clicked() 不会触发。ContentClicked或其他单击的方法也没有。

以下是我尝试过的所有事件:CellContentClick,CellEndEdit,SelectionChanged,Click,CellStateChanged, CellClick, CellValueChanged.

在用户改变焦点之前,它们都不会改变!

捕获数据网格视图组合单元格答案更改事件

也许您正在寻找DataGridViewComboBoxCellSelectedIndexChanged事件。你必须在DataGridViewComboBoxEditingControl中找到该事件,如下所示:

//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){
   //....
}