2010-11-11 75 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