我在阅读VB.NET中文本框的自动完成功能,但是我不太明白这些内容存储在哪里?它是完全内置的功能,还是我需要编写一些代码使其工作?我找到了文本框的AutoCompleteMode
和AutoCompleteSource
属性。但我想将我在文本框中输入的任何内容附加到自动完成源上。我要将源连接到My.Settings
或其他东西吗?我也需要使用数组吗?感谢您的帮助 :)
我在阅读VB.NET中文本框的自动完成功能,但是我不太明白这些内容存储在哪里?它是完全内置的功能,还是我需要编写一些代码使其工作?我找到了文本框的AutoCompleteMode
和AutoCompleteSource
属性。但我想将我在文本框中输入的任何内容附加到自动完成源上。我要将源连接到My.Settings
或其他东西吗?我也需要使用数组吗?感谢您的帮助 :)
您可以在输入字段验证时添加新值,或者当用户按下“OK / Apply”按钮时,或者任何最适合您需求的时间。但是,您必须自己执行此操作。
您已经发现的属性是正确的。
Dim suggestions As New List(Of String)
suggestions.Add("Abba")
suggestions.Add("Nirvana")
suggestions.Add("Rolling Stones")
...
textBox.AutoCompleteSource = suggestions
您可以将AutoCompleteSource
绑定到几乎任何东西,这与数据绑定非常相似。需要注意的一点是,如果您正在向自动完成数据源添加新条目,则如果您的数据源没有实现INotifyCollectionChanged
接口,UI控件可能不会立即注意到。
Array
初始化一个List
,但这是不可能的。不过,你可以先初始化一个Array
,然后使用它来初始化List
,像这样:Dim suggestions As List(Of String) = New List(Of String)(New String() {"Abba", "Nirvana", "Rolling Stones"})
。 - Hans Olsson首先创建列表以用作自定义来源。
Dim MySource As New AutoCompleteStringCollection()
然后设置文本框的属性
With MyTextbox
.AutoCompleteCustomSource = MySource
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
MySource.Add(txtinput.text)
End Sub