Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net+;文本框中的自动完成_Vb.net_Autocomplete_Textbox - Fatal编程技术网

Vb.net+;文本框中的自动完成

Vb.net+;文本框中的自动完成,vb.net,autocomplete,textbox,Vb.net,Autocomplete,Textbox,所以我读了一些关于VB.NET中文本框的自动完成的文章,但我真的不知道这些文本框存储在哪里?它是一个完全内置的功能,还是我必须为它编写一些代码才能工作?我找到了文本框的自动完成模式和自动完成源属性。但是我想把我在文本框中写的东西附加到自动完成源代码中。我是否将源连接到My.Settings或其他什么?我不也需要使用数组吗?任何帮助都将不胜感激:)您必须手动将新条目添加到自动完成的数据源中。。。仔细想想,这是有道理的:Windows窗体如何知道何时应将新条目添加到建议列表中,以及何时输入的文本只是

所以我读了一些关于VB.NET中文本框的自动完成的文章,但我真的不知道这些文本框存储在哪里?它是一个完全内置的功能,还是我必须为它编写一些代码才能工作?我找到了文本框的
自动完成模式
自动完成源
属性。但是我想把我在文本框中写的东西附加到自动完成源代码中。我是否将源连接到
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”})
填充文本框的自动完成自定义源,添加和删除条目: