1

これは、ボタン クリック イベントの動的テキスト ボックス コントロールのコードです。コードはうまく機能しています。ボタンを 3 回クリックすると、3 つのテキスト ボックスが生成されます。しかし、テキスト ボックスの値を変数に代入する方法がわかりません。動的に生成されたコントロールの名前がわかりません。3番目のテキストボックスに値を追加したい場合、どうすればいいですか?

Dim txtBx As TextBox
Static x As Integer
Static i As Integer

txtBx = New TextBox

txtBx.Location = New Point(10, 10 + x)
txtBx.Size = New Size(100, 20)

i = i + 1
x = x + 20

Me.Controls.Add(txtBx)

通常のテキストボックスを作成すると、それを行うことができます。

TextBox3.Text = "Some value"

しかし、動的コントロールに対してこれを行う方法がわかりません。

4

1 に答える 1

1

次に、参照をList(Of Textbox)に格納する例を示します。

Public Class Form1

Private tbList As New List(Of TextBox)

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim tb As TextBox
    Dim n As Integer

    n = tbList.Count + 1
    tb = New TextBox
    With tb
        .Location = New Point(10, 10 + (n * 20))
        .Name = "dynTB" & n.ToString
        .Size = New Size(100, 20)
    End With
    Me.tbList.Add(tb)
    Me.Controls.Add(tb)

End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    ' Testing:
    If Me.tbList.Count >= 3 Then Me.tbList(2).Text = "This is textbox 3"
End Sub

End Class

于 2012-09-22T09:03:02.347 に答える