2012-09-22 109 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