0

我正在 Studio '10 中用 Visual Basic 编写一个小程序。我有一系列八个数组,我也需要在 for 循环中设置文本。我需要根据标签编号设置文本(例如标签 1 获取 word1,标签 2 获取 word2) 有没有办法创建一个数组,然后在这个数组中设置我现有的标签,这样我就可以说诸如

for i = 1 to 8
    subsets(i).Text = words(w + i)
next   
  • 'i' 是 for 循环的变量
  • 子集是数组名称。
  • 'words' 是一个包含字符串的数组,我对此有点陌生,所以谢谢!
4

3 回答 3

2

您可以创建一个数组(或列表)Label并将每个标签控件添加到其中。

这将允许您按照您的描述循环和分配值。

Dim subsets As New List(Of Label)
subsets.Add(label1)
subsets.Add(label2)
...
于 2013-01-19T21:17:40.923 回答
1

由于您想将单词基于标签的名称,因此您应该按照 Oded 的建议创建一个数组或列表。然后,您可以使用该String.Remove方法从标签名称中删除单词 Label,将其转换为 int 并减去 1,因为 .Net 中的数组是基于 0 的。

像这样的东西。

Public Class Form1

    Dim subsets(7) As Label
    Dim words() As String = New String() {"this", "is", "a", "test", "of", "text", "replacement", "."}
    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        subsets(0) = Label1
        subsets(1) = Label2
        subsets(2) = Label3
        subsets(3) = Label4
        subsets(4) = Label5
        subsets(5) = Label6
        subsets(6) = Label7
        subsets(7) = Label8

    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        For Each lbl As Label In subsets
            lbl.Text = words(CInt(lbl.Name.Remove(0, 5)) - 1)
        Next
    End Sub
End Class
于 2013-01-19T22:10:12.450 回答
1

我想这就是你想要做的,虽然我可能错了

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim words() As String = {"one", "two", "three", "four", "five", "six", "seven", "eight"}
    Dim subsets() As Control = {Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8}

    For i = 0 To 7
        subsets(i).Text = words(i)
    Next

End Sub
End Class

这会将单词数组分配给标签文本属性

于 2013-01-19T22:44:35.533 回答