Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕获DataGridViewComboCell应答更改事件_C#_.net_Winforms - Fatal编程技术网

C# 捕获DataGridViewComboCell应答更改事件

C# 捕获DataGridViewComboCell应答更改事件,c#,.net,winforms,C#,.net,Winforms,我在DataGridView中有一个DataGridViewComboCell 我需要知道用户何时单击该组合单元格中的一个选项 我找不到发生这种情况时触发的事件 对于大多数名称听起来像要这样做的事件,在用户改变焦点之前,它们不会做任何事情 我不知道为什么微软会等待用户改变焦点来做一些事情。我当然不希望有这种行为。指派给我的QA人员肯定没有 我真不敢相信,当有人单击此按钮时,Clicked()不会启动。ContentClicked或其他单击的方法都没有 以下是我尝试过的所有事件:CellConte

我在DataGridView中有一个DataGridViewComboCell

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

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

对于大多数名称听起来像要这样做的事件,在用户改变焦点之前,它们不会做任何事情

我不知道为什么微软会等待用户改变焦点来做一些事情。我当然不希望有这种行为。指派给我的QA人员肯定没有

我真不敢相信,当有人单击此按钮时,Clicked()不会启动。ContentClicked或其他单击的方法都没有

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


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

可能您正在查找
DataGridViewComboxCell
SelectedIndexChanged
事件。您必须在
DataGridViewComboBox编辑控件中找到该事件,如下所示:

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

杰出的它的行为完全符合我的要求。我认为这应该是正常情况。我不明白为什么MS会这样隐藏对组合框的访问,而不显示一个方便的更改事件。@Michahoover可能不经常使用它,但是无论如何,显示该事件更方便。