我正在尝试创建具有自动完成功能的TextBox。
在我的Form的构造函数中,我正在从数据库中获取数据,并将TextBox AutoCompleteCustomSource
属性设置为用户名数组。
由于某些原因,自动完成功能无法正常工作。
我确信db.getUsersList()
方法没有问题(底部截图)。
public mainPanel()
{
InitializeComponent();
AutoCompleteStringCollection collection = new AutoCompleteStringCollection();
collection.AddRange(db.getUserList().ToArray());
nickName.AutoCompleteCustomSource = collection;
}
答案 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
键:
btnFindNick