2

GroupBox の内容をクリアして新しいオプションを入力したいのですが、その中のオブジェクト (別のクラスのテキストボックス) を破棄したくないので、Dispose() 関数を使用できません。コンテンツを破壊せずに 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)

この関数をもう一度呼び出すと、テキストボックスが存在しなくなったため、例外がスローされます

4

3 に答える 3

3

試すControlCollection.Remove

foreach(Control c in groupBox.Controls()) groupBox.Controls.Remove(c);

あるいは、使用することができますgroupBox.Controls.Clear()

于 2013-04-17T07:48:39.343 に答える