如何创建具有不同类型的控件数组,即文本框、组合框、复选框...基于特定值

How to create an array of Controls with different types i.e Textbox, combobox, checkbox...based on certain value

VB.net 如何根据特定值创建具有不同类型(即文本框、组合框、复选框...)的控件数组

这是代码:

Public Function TestControl(c As Integer())
        Dim a As Control()
        Dim l As Point
        Dim F As New Form
        For i As Integer = 0 To c.Length - 1
            If c(i) Then
                a(i) = New TextBox
            Else
                a(i) = New ComboBox
            End If
            a(i).Width = 400
            a(i).Height = 40
            l.Y = 50 + (3 * i - 2) * a(i).Height / 2
            l.X = 150
            a(i).Location = l
            F.Controls.Add(a(i))
        Next
        F.Show()
        Return Nothing
   End Function

当我尝试执行函数时出现以下错误:

变量 'a' 在赋值之前被使用。运行时可能会导致空引用异常。

我正在尝试解决它,但我无法成功。 任何想法都会对我很有帮助

谢谢

解决您的直接问题 "Variable 'a' is used before it has been assigned a value. A null reference exception could result at runtime."

你的问题是行

Dim a As Control()

只创建一个能够保存控制对象数组的变量a。它实际上并不创建数组,因为它不知道要创建多少个元素。

在您的情况下,解决方案很简单。将行更改为

Dim a(c.Length) As Control

这将创建一个空的控件数组,您可以在其中添加文本框和组合框。