2010-11-11 77 views
4

因此,我在VB.NET中阅读了一些关于文本框的自动完成功能,但我无法真正理解这些文件的存储位置?它是一个完全内置的功能,还是我必须编写一些代码才能工作?我发现了文本框的AutoCompleteModeAutoCompleteSource属性。但我想将我在文本框中编写的任何内容附加到自动完成源。我是否将源连接到My.Settings或其他东西?我不需要使用数组吗?任何帮助将不胜感激:)Vb.net +文本框中的自动完成

+0

填充的文本框的AutoCompleteCustom源,添加和删除条目: [见本文](http://www.codeproject.com/Articles/243368/AutoComplete-Textbox) – AvS 2012-10-09 09:52:51

回答

5

您将不得不手动添加新的条目到您的自动完成数据源...这是有道理的,当你考虑它:Windows窗体应该知道什么时候一个新的条目应该添加到建议列表中,并且输入的文本只是临时性的东西?

您可以添加新的值,例如当输入字段的验证发生时,或者当用户按下确定/应用按钮或任何最适合您需要的东西时。但是你必须自己做。

您已经发现的属性是正确的。

Dim suggestions As New List(Of String) 
suggestions.Add("Abba") 
suggestions.Add("Nirvana") 
suggestions.Add("Rolling Stones") 
... 
textBox.AutoCompleteSource = suggestions 

你可以将AutoCompleteSource绑定到几乎任何东西;这与数据绑定非常相似。需要记住的一件事是,如果您将新条目添加到自动完成数据源,那么如果您的数据源不实现INotifyCollectionChanged接口,UI控件可能不会立即注意到。

+0

好的,那么这些信息存储在哪里?我可以将它存储在My.Settings中吗? – 2010-11-11 08:43:22

+0

@Kenny。是。您可以将其存储在任何方便您的地方。 – 2010-11-11 09:18:57

+0

我无法弄清楚语法。昏暗的建议作为新列表(字符串)= {“阿巴”,“涅”“,”滚石“}不太好。我得到了一个“期望声明结束” – 2010-11-11 09:27:12

1

首先创建用作自定义源的列表。

Dim MySource As New AutoCompleteStringCollection() 

,然后设置文本框

With MyTextbox 
    .AutoCompleteCustomSource = MySource 
    .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
    .AutoCompleteSource = AutoCompleteSource.CustomSource 
End With 

把这个代码在事件侦听您使用验证输入字段,例如财产btnOK.Click

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click 
    MySource.Add(txtinput.text) 
End Sub