【问题标题】:Access multiple controls via an array rather than individually?通过数组而不是单独访问多个控件?
【发布时间】:2016-08-23 06:21:04
【问题描述】:

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

我的表单上有 20 个标签,分别命名为“Name1”、“Name2”等..... 我想从数据库中读取数据并使用数据库行中的相应值填充每个标签。

目前代码可以做到这一点:

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

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

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

谢谢,

【问题讨论】:

标签: arrays vb.net loops


【解决方案1】:

您可以将所需的控件添加到数组中(以正确的顺序)。 然后使用 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

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

【讨论】:

  • 您的循环需要从 0 转到 textBoxes.Count - 1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多