2014-09-03 123 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