0

Studio'10のVisualBasicで小さなプログラムを書いています。forループでテキストも設定する必要がある一連の8つの配列があります。ラベル番号に基づいてテキストを設定する必要があります(たとえば、ラベル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

私は間違っているかもしれませんが、これはあなたがやろうとしていたことだと思います

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

これにより、words 配列が labels テキスト プロパティに割り当てられます。

于 2013-01-19T22:44:35.533 に答える
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 に答える