提问人:Jimmy Dubray 提问时间:11/14/2023 最后编辑:jmcilhinneyJimmy Dubray 更新时间:11/14/2023 访问量:42
VB.NET 面板添加范围标签列表
VB.NET panel addrange list of labels
问:
在我的表格中,我有一个小组。 在一个循环中,我在这个面板中创建了许多标签,但它太慢了。
因此,似乎在循环中创建标签列表并在面板中添加标签后应该会更快。
这是我的代码:
Dim listLabels as new list(of label)
for a=0 to 100
dim lbl as new label
label.name="label" & a.Tostring
listLabels.add(lbl)
next
myPanel.controls.addrange(listLabels)
错误:无法将“List(of Label)”类型的值转换为“Control()”
你能帮帮我吗?
THKS的
答:
1赞
Tim Schmelter
11/14/2023
#1
Control.Controls
返回一个,其中 AddRange
只接受一个(控件数组)。所以它不是 AddRange
接受的。你可以使用 ToArray
,它从列表中创建一个数组:ControlCollection
Control()
List<Control>
IEnumerable<Control>
myPanel.Controls.AddRange(listLabels.ToArray())
由于您已经知道大小并且需要一个数组,因此您可以使其更有效率:
Dim labels(99) as Control ' looks odd, but has place for 100 labels
For a As Integer = 0 To 99
Dim lbl As New Label
lbl.Name = "label" & a.Tostring
labels(a) = lbl
Next
Label1.Controls.AddRange(labels)
评论
AddRange
List(Of T)
For