【问题标题】:Visual Basic Setting Labels in an ArrayVisual Basic 在数组中设置标签
【发布时间】:2017-06-08 08:13:47
【问题描述】:

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

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

【问题讨论】:

    标签: vb.net visual-studio


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      由于您希望单词基于标签名称,因此您应该按照 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
      

      【讨论】:

        【解决方案3】:

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

        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
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-22
          • 1970-01-01
          • 2013-10-26
          • 1970-01-01
          • 2012-05-24
          相关资源
          最近更新 更多