动态创建文本框

时间:2010-03-20 16:28:35

标签: c# .net vb.net

我需要动态创建文本框。 这是我的代码,但有了这个,我只创建了一个文本框:

 Public Sub CreateTextBox()
        Dim I As Integer
        Dim niz As Array
        For I = 1 To 5
           Dim myTextBox = New TextBox
           myTextBox.Text = "Control Number:" & I
            Me.Controls.Add(myTextBox)
        Next

    End Sub

那我怎么能动态创建文本框?

谢谢!

3 个答案:

答案 0 :(得分:2)

克里斯是对的。您没有设置位置,因此控件使用每个位置的默认位置。它们堆叠在一起。

您可能还想创建一个单独的文本框集合,以便您可以从Forms.Controls集合中单独访问它们。

此外,您可能希望使用.Tag属性以某种方式标识创建的控件。

答案 1 :(得分:2)

此代码实际上创建了TextBox的5个实例,并将它们添加到当前表单中。问题是你要将它们添加到另一个之上。您需要使用布局机制才能正确显示它们。

例如,此代码会以自上而下的方式将它们添加到FlowLayoutPanel

Public Sub CreateTextBox()
  Dim I As Integer
  Dim panel as New FlowLayoutPanel()
  panel.FlowDirection = FlowDirection.TopDown
  For I = 1 To 5
    Dim myTextBox = New TextBox
    myTextBox.Text = "Control Number:" & I
    panel.Controls.Add(myTextBox)
  Next
  Me.Controls.Add(panel)

End Sub

答案 2 :(得分:0)

您需要将控件的ID属性设置为每个控件的唯一属性。还要记住,使用动态创建的控件,您必须使用每个页面帖子重新创建它们,以便能够从控件集合中检索任何信息。