[英]Setting the values of text of controls (labels) in an array in 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
您可以创建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.