2014-03-27 71 views
0
Private Sub frmQuery3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    frmQuery2.Hide() 
    Dim columns As String = frmQuery2.GetColumns 
    cmbColumnSort.MaxDropDownItems = columns.Length 
    For stepper = 0 To (columns.Length - 1) 
     cmbColumnSort.Items.Add(columns(stepper)) 
    Next 
End Sub 

cmbColumnSort最初是一個空的ComboBox。我想要做的是用ComboBox填充字符串數組列,它不應該爲空(它當然不在frmQuery2中)。如何用字符串數組填充組合框?

事情是,它不起作用。我已經嘗試過Step Into來查看屬性GetColumns是否實際返回一個填充數組(因爲frmQuery2中的數組已填充),但Step Into僅從上述代碼的第三行跳過並加載表單,等待進一步輸入,並將組合框留空。幫幫我?

+0

使用調試,看看你會得到一個異常。 –

+0

把你的代碼放在'try catch'裏面。 – Fabio

+0

事情是,代碼編譯,但組合框沒有得到填充...:/ – Mox

回答

1

你需要一個字符串數組來獲得列,所以使用Dim columns() As String

下面的代碼工作正常

Dim columns() As String = {"1", "2", "3"} 
    ComboBox1.MaxDropDownItems = columns.Length 
    For stepper = 0 To (columns.Length - 1) 
     ComboBox1.Items.Add(columns(stepper)) 
    Next 

我建議你讓你的代碼更清晰,更簡單。使用書寫For Each

Dim columns() As String = {"1", "2", "3"} 
    ComboBox1.MaxDropDownItems = columns.Length 
    For Each column As String In columns 
     ComboBox1.Items.Add(column) 
    Next 
+0

我是一個白癡。非常感謝你。 :) – Mox

+0

沒問題。樂意效勞! :) – equisde

0

爲什麼不是ComboBox1.Items.AddRange(columns)

-2

如果你不想創建陣列

ComboBox1.DataSource = {"Text1", "Text2", "Text3"}