【发布时间】:2020-10-01 07:39:34
【问题描述】:
我有一个面板,里面有 4 个面板。内部面板被命名为“XXXX | 1 | A”、“XXXX | 1 | B”、“XXXX | 1 | C”和“XXXX | 1 | D”,您可以看到它们在最后一个字符中的区别一封信。
在这种情况下,我要做的始终是只删除标识为 A 和 B 的面板。
这是我的代码。
Dim clickedLabel = DirectCast(DirectCast(DirectCast(sender, ToolStripMenuItem).Owner, ContextMenuStrip).SourceControl, Panel)
pb = clickedLabel.Parent
Dim controls_number As Integer = pb.Controls.Count
Dim spliterb
Dim con As Control
For Each con In pb.Controls
spliterb = con.Name.Split("|")
If spliterb(2).ToString = ("A") Or spliterb(2).ToString = ("B") Then
pb.Controls.Remove(con)
End If
Next
如你所见,通过变量controls_number我知道里面有4个Panel,但是在进行排列时,它只读取3,并且只删除了标识为B的Panel,没有到达Panel A。
您能向我解释一下您为什么不阅读 4 个面板吗?有什么想法可以让我完成所有 4 个?
谢谢。
【问题讨论】: