我有3个控件,它们由同一行上的标签,列表框和文本框组成。在另一条线上,我有3个不同的相同类型的控件,分别是标签,列表框和文本框。我想把它们放到像这样的三维数组中:
Dim multiArray() As Object = { {Lane1Label, ListBox1, TextBox1},
{Lane2Label, ListBox2, TextBox2} }
但这不是让我这样做的。有办法吗?
答案 0 :(得分:3)
创建一个类(甚至可能是自定义或用户控件)来包含每行控件:
Public Class ControlLine
Public Property Lane As Label
Public Property List As ListBox
Public Property Text As TextBox
End Class
然后创建这些对象的单维数组(或者通常更好:List(Of ControlLine)
)并将您的项目放在这里:
Dim lines() As ControlLine = {
New ControlLine With { Lane = LaneLabel1, List = ListBox1, Text = TextBox1},
New ControlLine With { Lane = LaneLabel2, List = ListBox2, Text = TextBox2}
}
这是更好,因为数组中的项目保持强类型,以便进行良好的编译时检查以及对intellisense等内容的IDE支持。 Visual Studio的最新版本也可以通过Tuples来实现。
同样,还要考虑将其进一步抽象为自定义或用户控件,您可以使用一个简单的构造函数调用创建整个集合,在表单上放置一个控件并使整个集合正确排列,甚至考虑< strong>数据绑定这些ControlLines到FlowLayoutPanel
之类的容器,而不是自己管理所有控件和数组以及放置。
答案 1 :(得分:0)
这样做:
Dim multiArray(,) As Object = _
{ _
{Lane1Label, ListBox1, TextBox1}, _
{Lane2Label, ListBox2, TextBox2} _
}
请注意二维数组声明中的,
。