我想清除GroupBox的内容以用新选项填充它,但我不能使用Dispose()函数,因为我不想销毁其中的对象(来自另一个类的Textboxes)。 有没有办法在不破坏内容的情况下清空GroupBox?
编辑:由于很难理解我想要什么,这就是我试图做的(这是IronPython btw,但这不应该是一个问题)def loadMethod(self, sender, e):
self.MethodParaBox.Visible = True
for i in self.MethodParaBox.Controls:
self.MethodParaBox.Controls[0].Dispose()
panel = Panel()
panel.AutoScroll = True
panel.Width = 150
panel.Height = 130
panel.Left = 25
panel.Top = 25
self.MethodParaBox.Controls.Add(panel)
for i, z in enumerate(self.parent.getParameter(self.project.SelectedItem, self.design.SelectedItem)):
if self.textBoxList[i].value.Enabled == False:
label = Label()
label.Left = 0
label.Top = 30 * i
label.Width = 80
label.Text = z
panel.Controls.Add(label)
self.textBoxList[i].option3.Left = 90
self.textBoxList[i].option3.Top = 0 + 30 * i
self.textBoxList[i].option3.Width = 40
panel.Controls.Add(self.textBoxList[i].option3)
如果我第二次调用此函数,它将抛出异常,因为文本框不再存在
答案 0 :(得分:2)
foreach(Control c in groupBox.Controls()) groupBox.Controls.Remove(c);
或者您可以使用groupBox.Controls.Clear()
答案 1 :(得分:1)
您可以使用Control.ControlCollection.Clear
Method
groupBox.Controls.Clear()
或Control.ControlCollection.RemoveAt
Method
While groupBox.Controls.Count > 0
groupBox.Controls.RemoveAt(0)
End While
或者使用For loop with Remove method
For i As Integer = (groupBox.Controls.Count - 1) To 0 Step -1
Dim ctrl As Control = groupBox.Controls(i)
groupBox.Controls.Remove(ctrl)
ctrl.Dispose()
Next i
答案 2 :(得分:0)
您只需在设计中选择分组框内容,然后将其从gb中移开,然后就可以安全地删除它,并根据需要移回内容。