【发布时间】:2015-04-24 17:24:17
【问题描述】:
我在表单中添加了一些图片框:
代码顶部:
Private Flag As PictureBox
在form1_Load事件下:
Flag.Location = New Point(buttonX, buttonY)
Flag.BackColor = Color.Red
Flag.BorderStyle = BorderStyle.FixedSingle
Flag.Name = "Flag" & Pos
Me.TabPage1.Controls.Add(Flag)
Flag.BringToFront()
例如,我最终得到了 4 个名为“Flag2”“Flag5”“Flag6”“Flag8”的图片框。然后我尝试使用以下方法将它们全部删除:
Dim con As Control
For Each con In Me.TabPage1.Controls
If con.Name.Contains("Flag") Then
Me.TabPage1.Controls.Remove(con)
End If
Next
最终发生的事情并不是所有的图片框都被删除了。如果我多次运行删除代码,它将全部删除,但我试图一次将它们全部删除。我也试过了:
Dim con As Control
Dim i As Integer = 0
While i < Me.TabPage1.Controls.Count
con = Me.TabPage1.Controls(i)
If con.Name.Contains("Flag") Then
Me.TabPage1.Controls.Remove(con)
End If
i += 1
End While
两个“删除代码”都按照彼此相同的顺序删除图片框(不是按照顺便创建的顺序),而不是删除所有的图片框。
【问题讨论】:
标签: vb.net loops dynamic controls