VB.NET:动态添加阵列到COMBOBOX

时间:2013-08-06 08:39:42

标签: arrays vb.net combobox foreach load

有谁知道如何在VB.net中动态地将数组添加到一堆组合框中?我真的可以使用这个帮助(我整天都在苦苦挣扎)。当我尝试按照我的方式进行操作时,我在表单加载时出错。

我的代码:

Private Sub Form1_Load(ByVal sender as Object, ByVal e as EventArgs) Handles Me.Load
    Dim MyArray() as String = {"a","b","c"}

    For each ctl as ComboBox in Me.Controls
        if ctl.tag = "yadda" then ctl.Items.AddRange(MyArray)
    Next
End Sub

错误:“无法将类型为'...按钮'的对象转换为'... Combobox'。”

我为这段代码尝试了很多变化,但我无法让它工作。在我的应用程序中,我最终将有近百个类似构造的组合框,我希望能够以编程方式初始化它们的项目。有人可以帮忙吗?

谢谢,

利亚

1 个答案:

答案 0 :(得分:3)

这是做到这一点的方法:

Public Class Form1

    Function getControl(ByVal controlName As String) As Control
        Dim numCtrls = Me.Controls.Count()
        For I As Integer = 0 To numCtrls - 1
            If Me.Controls.Item(I).Name = controlName Then
                If TypeOf Me.Controls.Item(I) Is ComboBox Then
                    Return CType(Me.Controls(controlName), ComboBox)
                End If
            End If
        Next
    End Function

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

        Dim myArray As Array = {"a", "b", "c"}
        Dim myComboBox As ComboBox

        For Each ctl As Control In Me.Controls
            If TypeOf ctl Is ComboBox Then
                If ctl.Tag = "yadda" Then
                    myComboBox = getControl(ctl.Name)
                    myComboBox.Items.AddRange(myArray)
                End If
            End If
        Next

    End Sub

End Class

循环浏览所有控件(按钮,组合等等),然后检查它是否是您想要的类型(ComboBox)并执行您需要的任何操作。

祝你好运!