gpt4 book ai didi

c# - 检测 DataGridViewComboBoxCell 中相同项目的选择

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:30 26 4
gpt4 key购买 nike

我在 C# winform 应用程序中有一个带有 datagridviewcomboboxcell 的 datagridview。因为 CellValueChanged 事件触发,所以我可以很容易地捕捉到何时选择了新项目。但是,我希望能够检测到组合框何时打开,但用户选择了已选择的相同值。我怎样才能捕捉到这个?

最佳答案

EditingControlShowing 事件和一些组合框事件的组合有效1

EditingControlShowing 允许我们访问嵌入式组合框控件:

dataGridView1.EditingControlShowing += new 
DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);


void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox control = e.Control as ComboBox;

if (control != null)
{
control.DropDown += new EventHandler(control_DropDown);
control.DropDownClosed += new EventHandler(control_DropDownClosed);
}
}

我在表单中添加了一个私有(private)类级变量来存储组合框选择的索引。

void control_DropDown(object sender, EventArgs e)
{
ComboBox c = sender as ComboBox;

_currentValue = c.SelectedIndex;
}

void control_DropDownClosed(object sender, EventArgs e)
{
ComboBox c = sender as ComboBox;
if (c.SelectedIndex == _currentValue)
{
MessageBox.Show("no change");
}
}

1. 每次打开和关闭组合框时都会触发此解决方案 - 如果您想要其他东西(例如当组合框提交它对网格的更改时)更新您的问题描述确切行为。

关于c# - 检测 DataGridViewComboBoxCell 中相同项目的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10835569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com