【发布时间】:2011-03-05 03:13:06
【问题描述】:
我在一个 winforms 应用程序上有一个ComboBox,代码如下:
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
DataTable t = new DataTable();
t.Columns.Add("ID", typeof(int));
t.Columns.Add("Display", typeof(string));
for (int i = 1; i < 2000; i++)
{
t.Rows.Add(i, i.ToString("N0"));
}
comboBox1.DataSource = t;
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Display";
然后,当窗口打开时,我按照以下步骤操作:
- 单击
ComboBox下拉按钮——这将显示项目列表并选择ComboBox中的文本 - 键入“5”、“1”...即我希望使用自动完成功能来搜索 515、516 等。
- 您会看到自动完成窗口现在出现在下拉列表的顶部。但是,如果我将鼠标悬停在接收鼠标事件(包括点击)的自动完成窗口后面的隐藏下拉窗口。所以我想我是在点击一个自动完成的项目,但实际上是在点击我看不到的完全随机的东西。
这是ComboBox 中的错误吗?如果这很重要,我正在使用 Windows 7。我是否以某种方式配置了ComboBoxwrong?
另请注意,使用 KEYBOARD 会使用自动完成下拉菜单。所以上/下箭头键使用的是前窗,而鼠标使用的是后窗。
【问题讨论】:
-
这有什么问题 - 他们只是想给你两全其美!
-
有一个简单有效的解决方法。但既然 SO 告诉我不要回答 cmets 中的问题,我不会。但我确实在下面回答了它......作为一个答案。
标签: c# winforms combobox autocomplete