Vb.net 尝试动态创建文本框并删除它们
我正在使用VB.NETVB2008。我正在尝试动态地创建文本框,并删除它们。这是我迄今为止编写的代码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()
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来更改集合。最安全的方法是反向使用索引,这样位置就不会受到影响