我有一个带有 autoComplete 组合框列的绑定 dataGridView ,并且自动完成功能正在工作,只是观察到一种令人讨厌的行为。
当我第一次在自动完成单元格中键入文本并使用 tabKey 移动到下一个单元格时,我的选择不会保留,我选择的内容被清除并且自动完成单元格保留为空。如果 ii 立即使用左箭头键返回到该自动完成单元格并输入文本,我选择的任何内容都会保留,没有任何问题。
所以,我遇到的问题是让单元格保留我的第一个初始选择,现在唯一的解决方法是 Tab 到下一个单元格,然后返回到这个有问题的自动完成组合框单元格并全部输入。在这一点上,它起作用了。
是否有一些事件我应该处理以在单元格离开时提交我选择的文本?
代码:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
}
}
编辑:在下面的 CellLeave 上,即使我做出了选择,值也会返回为 null。
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
var Row = this.dataGridView1.CurrentRow.Index;
string value = this.dataGridView1["itemID", Row].Value.ToString();
}