如何创建具有不同类型的控件数组,即文本框、组合框、复选框...基于特定值
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
这将创建一个空的控件数组,您可以在其中添加文本框和组合框。
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
这将创建一个空的控件数组,您可以在其中添加文本框和组合框。