0

有谁知道如何动态地将数组添加到 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

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

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

谢谢,

埃利亚斯

4

1 回答 1

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

您遍历所有控件(按钮、组合等...),然后检查它是否是您想要的类型(组合框)并执行您需要的任何操作。

祝你好运 !

于 2013-08-06T08:45:58.140 回答