-1

こんにちは、フォームの実行時ラベルを作成しています:

    Dim tmpLbl As New Label
    Dim intX As Integer = 0

    Do Until intX = 4
        With tmpLbl
            .Size() = New System.Drawing.Size(58, 15)
            .Text = "Run-time Controls " & intX
            .Location = New System.Drawing.Point(2, 20)
            .Name = "test" & intX
        End With

        With Me.Controls
            .Add(tmpLbl)
        End With

        intX += 1
    Loop

これはうまく動作します...しかし、私がしたいときは、次のようにこれらのランタイムコントロールの1つを呼び出すボタンをフォームに配置するとします:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Debug.Print(tmpLbl.Name)
End Sub

当然、これは上記では機能しません。そのボタンをクリックしたときにラベル名 (例: test2 ) を取得し、そのテキスト (例: ランタイム コントロール 2 ) を読み取るにはどうすればよいですか?

4

1 に答える 1

0

とった!

Private genTmpLbl As New List(Of Label)

Public Sub makeRunTimeControls()
    Dim tmpLbl As New Label
    Dim intX As Integer = 0

    Do Until intX = 4
        With tmpLbl
            .Size() = New System.Drawing.Size(58, 15)
            .Text = "Run-time Controls " & intX
            .Location = New System.Drawing.Point(2, 20)
            .Name = "test" & intX
        End With

        With Me.Controls
            .Add(tmpLbl)
        End With

        genTmpLbl.Add(tmpLbl)
        intX += 1
    Loop
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    For Each label In genTmpLbl
        For Each control In Me.Controls
            If TypeOf (control) Is Label Then
                Debug.Print(control.Name)
            End If
        Next
    Next
End Sub
于 2013-07-16T19:59:08.900 に答える