2012-09-22 43 views
1

这是我在按钮单击事件中用于动态文本框控件的代码。代码运行良好。如果我点击3次按钮,它会生成3个文本框。但我不知道将文本框值赋给变量。我不知道动态生成的控件的名称。如果我想为第三个文本框添加值,该怎么做?VB.NET中的动态控件

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

访问他们通过'Controls'收集或保存的控件的引用到'清单'或引用瓦尔。 – adatapost

回答

1

下面是一个例子,存储在列表(中文本框)引用:

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

+0

这就是我需要的。我从这段代码得到了一个想法。现在我可以完成我的项目的很大一部分。比你非常多的KekuSemau。 – weeraa