具有用户名数据的AutoCompleteCustomSource无法正常工作

时间:2019-04-06 16:20:59

标签: c# winforms autocomplete textbox

我正在尝试创建具有自动完成功能的TextBox。
在我的Form的构造函数中,我正在从数据库中获取数据,并将TextBox AutoCompleteCustomSource属性设置为用户名数组。
由于某些原因,自动完成功能无法正常工作。

我确信db.getUsersList()方法没有问题(底部截图)。

public mainPanel()
{
    InitializeComponent();
    AutoCompleteStringCollection collection = new AutoCompleteStringCollection();
    collection.AddRange(db.getUserList().ToArray());
    nickName.AutoCompleteCustomSource = collection;
}

enter image description here

1 个答案:

答案 0 :(得分:1)

要设置支持自动完成功能的控件,必须指定“自动完成”功能的来源。使用AutoCompleteCustomSource属性设置为字符串集合时,AutoCompleteSource属性必须设置为AutoCompleteSource.CustomSource,而AutoCompleteMode必须设置为AutoCompleteMode.SuggestAppend或{{1} }。

这些属性必须一起使用,以指定“自动完成”功能的工作方式。

由于问题中的代码似乎正在使用某种数据源来创建AutoCompleteMode.Suggest集合,因此这是一个通用示例,该示例从AutoCompleteCustomSource创建CustomSource,并添加了绑定List<class>类添加到控件,并使用Binding更新某些控件的值。

该示例(如其可视示例所示)使用三个控件:一个TextBox( BindingSource )(启用了自动完成功能)和两个Labels( {{1 }} txtAutoComp ),绑定到相同的数据源,当AutoComple控件的文本更改时,这些数据源将更新。
自动完成功能已扩展为允许使用部分字符串查找元素,方法是单击按钮( {lblNickName ,在此处)或在文本框中按lblNickValue键:

TextBox AutoCompleteCustomSource

btnFindNick