繁体   English   中英

数组中的Visual Basic设置标签

[英]Visual Basic Setting Labels in an Array

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

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

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

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

Dim subsets As New List(Of Label)
subsets.Add(label1)
subsets.Add(label2)
...

由于您想将单词作为标签名称的基础,因此应按照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

我认为这是您正在尝试执行的操作,尽管我可能错了

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM