通过数组而不是单独访问多个控件?

时间:2016-04-28 12:59:39

标签: arrays vb.net loops

我想知道是否有人可以帮我解决以下问题?

我的表单上有20个标签,名为" Name1"," Name2"等等..... 我想从DB中读取并使用DB行中的相应值填充每个标签。

目前,代码完成了很长的工作:

Name1.Text = dt.Rows(0).Item("Name1")
Name2.Text = dt.Rows(0).Item("Name2")
etc.....

我想使用数组和循环来减少代码,但我不确定我需要做什么。 以下工作完美,除了Name1.Text,我实际上希望它是名称(i).text = ....... 我只想说这不起作用,所以我想知道我做错了什么。

For i As Int16 = 1 To 20
    Name1.Text = dt.Rows(0).Item("Name" & (i))
Next

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以在数组中添加所需的控件(按正确顺序)。 然后使用For或For Each循环进行迭代。

使用您的代码看起来像:

Dim textBoxes() As TextBox = {Name1, Name2, Name3, Name4, Name5, etc}
For i As Int16 = 0 To textBoxes.Count -1
    'According To Matt Wilko, it's better to start from 0 to textBoxes.Count-1, so you'll have to use i+1
    textBoxes(i+1).Text = dt.Rows(0).Item("Name" & (i+1))
Next

顺便说一下,我不确定这是最好的方法:/