/ / VB.NETの動的コントロール - vb.net、動的

VB.NETの動的コントロール - vb.net、動的

これは私の動的テキストボックスコントロールのコードですボタンクリックイベント。コードはうまくいきます。ボタンを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"

しかし、私はダイナミックコントロールのためにこれを行うことを知っていません。

回答:

回答№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
</ pre>

エンドクラス </ code>