2014-03-27 70 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"}