2014-01-15 45 views
0

一般来说,我的问题是,我在windows.forms.combobox上做了自动补全,当我输入第一个字母下拉列表时打开并提供了一个城市列表作为预期工作,但当我开始键入另一封限制自动完成列表的字母,第一个字母被删除,并用我的新字母切换,该字母变成组合框中第一个也是唯一的字母。我使用textchanged事件来执行自动完成功能。C#combobox自动完成重置值

请帮帮忙,

在此先感谢!

+0

一些代码将受到欢迎。 –

+0

我可以这样做:KeyDown事件首先触发,获取我输入的字母,然后KeyDown调用textchanged事件并将它写入信函? –

回答

1

对于ComboBox,您不必手动实施AutoComplete。它已经有了这个功能。只是这样做:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 

您还可以设置通过ComboBox控制性的判定窗口这些属性。

enter image description here

+0

我已经实施了这个解决方案,但有一个例外,我将AutoCompleteSource设置为CustomSource,并且AutoCompleteCustomSource属性的来源为AutoCompleteStringCollection。 –

+0

通过使用cuatom源代码,您必须提供自动完成工作的自定义源代码,但在您的情况下,将'AutoCompleteSource'设置为ListItems非常容易,它的工作原理非常完美。 –