gpt4 book ai didi

c# - DataGridViewCombobox 列中的自动完成有什么奇怪的行为?

转载 作者:太空狗 更新时间:2023-10-29 21:40:35 25 4
gpt4 key购买 nike

我正在使用 (EditingControlShowing) 事件在 DataGridViewComboBox 列中启用自动完成。

private void dataGridView1_EditingControlShowing(object sender,  DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewComboBoxEditingControl)
{
ComboBox combo = (ComboBox)e.Control;
((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
}
}

但它有一个奇怪的行为,当我输入一些字符然后离开单元格(Tab 或右键)时,值没有改变。
但如果我重复那句话,值(value)就会改变。来自 Here ,您可以下载解释问题的源代码和 (EXE) 视频。

你能帮我让它正常工作吗?

最佳答案

对于第一次进入组合框,选项卡似乎不再触发值的提交。不知道为什么会这样,但似乎处理 CurrentCellDirtyStateChanged 并提交编辑可以修复它。

void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
// You could also check here to see if the cell in question is the combobox
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}

关于c# - DataGridViewCombobox 列中的自动完成有什么奇怪的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216530/

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