gpt4 book ai didi

c# - DataGridViewComboBoxCell 的奇怪问题,试图自动提交更改

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:43 27 4
gpt4 key购买 nike

所以我的目标是一旦用户单击下拉列表中的项目,单元格将自动调用 EndEdit()。最奇怪的是,下面的代码将在我下拉的第 2-n 个 ComboBoxesCells 上工作,并从中选择值,但绝不是第一个。我在这里遗漏了什么吗??

        protected override void OnCellClick(DataGridViewCellEventArgs e)
{
base.OnCellClick(e);

DataGridViewComboBoxEditingControl control = this.EditingControl as DataGridViewComboBoxEditingControl;
if (control != null)
{
control.DropDownClosed += new EventHandler(control_DropDownClosed);
}
}

void control_DropDownClosed(object sender, EventArgs e)
{
this.EndEdit();
DataGridViewComboBoxEditingControl control = sender as DataGridViewComboBoxEditingControl;
control.DropDownClosed -= new EventHandler(control_DropDownClosed);
}

如果这不是很明显,应该在这里添加我继承自 DataGridView

最佳答案

当出现类似“最奇怪的事情是下面的代码将在我下拉并从中选择值但从不选择第一个的 2nd-n ComboBoxesCells 上工作”时,这通常是因为事件在您需要的事情完成之前发生。

看到你的例子,我会说第一次,当你点击时,

DataGridViewComboBoxEditingControl control = this.EditingControl as DataGridViewComboBoxEditingControl;

给你 control == null

也许您应该将选择的事件从 Click 更改为 SelectedIndexChangedSelectedValueChanged

希望对您有所帮助,

关于c# - DataGridViewComboBoxCell 的奇怪问题,试图自动提交更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400679/

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