Vb.net 尝试动态创建文本框并删除它们

Vb.net 尝试动态创建文本框并删除它们,vb.net,textbox,Vb.net,Textbox,我正在使用VB.NETVB2008。我正在尝试动态地创建文本框,并删除它们。这是我迄今为止编写的代码 Private Sub setTextBox() Dim num As Integer Dim pos As Integer num = Len(word) temp = String.Copy(word) Dim intcount As Integer remove()

我正在使用VB.NETVB2008。我正在尝试动态地创建文本框,并删除它们。这是我迄今为止编写的代码

 Private Sub setTextBox()
        Dim num As Integer
        Dim pos As Integer

        num = Len(word)
        temp = String.Copy(word)
        Dim intcount As Integer





        remove()
        GuessBox.Visible = True
        letters.Visible = True



        pos = 0
        'To create the dynamic text box and add the controls 
        For intcount = 0 To num - 1
            Txtdynamic = New TextBox
            Txtdynamic.Width = 20
            Txtdynamic.Visible = True
            Txtdynamic.MaxLength = 1
            Txtdynamic.Location = New Point(pos + 5, 0)
            pos = pos + 30
            'set the font size
            Txtdynamic.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Txtdynamic.Name = "txtdynamic_" & intcount & "_mycntrl"
            Txtdynamic.Enabled = False
            Txtdynamic.Text = ""

            Panel1.Controls.Add(Txtdynamic)

        Next
        Panel1.Visible = True
        Controls.Add(Panel1)
        Controls.Add(GuessBox)
        Controls.Add(letters)
        letter = ""
        letters.Text = ""
        hang_lable.Text = ""

        tries = 0
    End Sub`enter code here`  



 Function remove()


            For Each ctrl In Panel1.Controls

            Panel1.Controls.Remove(ctrl)

        Next
    End Function
我可以创建文本框,但只有少数被删除。通过对Panel1.Controls中的每个ctrl键使用,它不会检索到所有控件以及一些复制的ae。

将删除更改为

Sub remove()
    For i As Integer = Panel1.Controls.Count - 1 To 0 Step -1
        Panel1.Controls.Remove(Panel1.Controls(i))
    Next i
End Sub
如果我没有弄错的话,您不应该在当前正在循环的循环中使用for each来更改集合。最安全的方法是反向使用索引,这样位置就不会受到影响