检测 DataGridViewComboBoxCell 中同一项的选择



我有一个 datagridview,在 C# winform 应用程序中有一个带有 datagridviewcomboboxcell。 我很容易捕获何时选择新项目,因为 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);
    }
}

我在窗体中添加了一个私有类级别变量,用于存储组合框所选索引。

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.每次打开和关闭组合框时都会触发此解决方案 - 如果您想要其他内容(例如当组合框提交其对网格的更改时),请更新描述确切行为的问题。

尝试查看事件: - 下拉 - 下拉关闭

相关内容

  • 没有找到相关文章

最新更新