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