Vb.net+;文本框中的自动完成
所以我读了一些关于VB.NET中文本框的自动完成的文章,但我真的不知道这些文本框存储在哪里?它是一个完全内置的功能,还是我必须为它编写一些代码才能工作?我找到了文本框的Vb.net+;文本框中的自动完成,vb.net,autocomplete,textbox,Vb.net,Autocomplete,Textbox,所以我读了一些关于VB.NET中文本框的自动完成的文章,但我真的不知道这些文本框存储在哪里?它是一个完全内置的功能,还是我必须为它编写一些代码才能工作?我找到了文本框的自动完成模式和自动完成源属性。但是我想把我在文本框中写的东西附加到自动完成源代码中。我是否将源连接到My.Settings或其他什么?我不也需要使用数组吗?任何帮助都将不胜感激:)您必须手动将新条目添加到自动完成的数据源中。。。仔细想想,这是有道理的:Windows窗体如何知道何时应将新条目添加到建议列表中,以及何时输入的文本只是
自动完成模式
和自动完成源
属性。但是我想把我在文本框中写的东西附加到自动完成源代码中。我是否将源连接到My.Settings
或其他什么?我不也需要使用数组吗?任何帮助都将不胜感激:)您必须手动将新条目添加到自动完成的数据源中。。。仔细想想,这是有道理的:Windows窗体如何知道何时应将新条目添加到建议列表中,以及何时输入的文本只是暂时的
您可以添加新值,例如,当输入字段发生验证时,或当用户按下“确定/应用”按钮时,或任何最适合您需要的情况。但是你必须自己做这件事
您已经发现的属性是正确的
Dim suggestions As New List(Of String)
suggestions.Add("Abba")
suggestions.Add("Nirvana")
suggestions.Add("Rolling Stones")
...
textBox.AutoCompleteSource = suggestions
您可以将
AutoCompleteSource
绑定到几乎任何东西;这与数据绑定非常相似。需要记住的一点是,如果要向自动完成数据源添加新条目,UI控件可能不会立即注意到您的数据源是否未实现INotifyCollectionChanged
接口。首先创建要用作自定义源的列表
Dim MySource As New AutoCompleteStringCollection()
然后设置文本框的属性
With MyTextbox
.AutoCompleteCustomSource = MySource
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
将此代码放入用于验证输入字段的eventlistener中,例如btnOK。单击
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
MySource.Add(txtinput.text)
End Sub
好的,那么这些信息存储在哪里呢?我可以把它储存在我的设置中吗?@Kenny。对你可以把它存放在任何你方便的地方。我搞不懂语法。模糊的建议,如新的列表(字符串)={“阿巴”,“涅磐”,“滚石”}飞得不好。我得到了一个“预期语句结束”的字符串选择(顺便说一句;)我会有披头士乐队、滚石乐队和阿巴乐队,但是;)@肯尼:你正试图使用
数组
初始化来初始化一个列表
,这是你做不到的。但是,您可以先初始化数组
,然后使用该数组初始化列表
,如下所示:Dim suggestions As List(Of String)=New List(Of String)(New String(){“Abba”、“Nirvana”、“Rolling Stones”})
填充文本框的自动完成自定义源,添加和删除条目: