2014-09-03 453 views
2

我正在嘗試將自動填充框添加到我的winform中。使用文本框自動填充

GetDatabaseContent()適用於combo box,但我想將其添加到textbox

這個問題我現在的代碼是把我的Datatable的內容作爲一行而不是一個列表。

任何幫助將是偉大的。

Private Sub frmUser_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

    Dim mystring 

    Dim dt As DataTable = GetDatabaseContent() 
    mystring = FetchTable(dt) 
    Dim newstr As New AutoCompleteStringCollection 
    newstr.Add(mystring) 
    txtbox.AutoCompleteCustomSource = newstr 


End Sub 

Function FetchTable(dt As DataTable) 
    Dim mystring = "" 
    For Each dr As DataRow In dt.Rows 
     mystring &= dr.Item(0).ToString 
    Next 
    Return mystring 
End Function 
+1

我不認爲正常的文本框唐沒有這種行爲。通常你使用ComboBox。對於你想要的行爲,你可能需要找到另一個控件(或者做一些黑客來自定義組合框不顯示箭頭按鈕) – mortb 2014-09-03 13:54:45

回答

2

您只能創建單個文本行作爲數據源來使用,所以儘量只添加文本的每一行的集合,而不是:

Dim newstr As New AutoCompleteStringCollection 
For Each dr As DataRow In dt.Rows 
    newstr.Add(dr.Item(0).ToString) 
Next 
TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest 
TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource 
TextBox1.AutoCompleteCustomSource = newstr 
+1

哈哈 - 你在哪裏30分鐘前?我發現我錯過了一個循環。當你盯着代碼太久時,你會迷失方向。 – user3191666 2014-09-03 15:05:25