2013-04-17 2 views
2

GroupBox의 내용을 지우고 새 옵션으로 채우고 싶지만 그 안에있는 객체를 파괴하지 않으므로 Dispose() 함수를 사용할 수 없습니다. 수업). 콘텐츠를 파괴하지 않고 GroupBox를 비울 수있는 방법이 있습니까?내용을 손상시키지 않고 Winforms GroupBox를 지움

편집 : 그 어려운 내가 여기 내가하려고 무엇을 원하는 정확히 이해하기 때문에 (이 BTW IronPython을하지만, 그 문제 야해) 내가이 기능을 두 번째를 호출하는 경우

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) 

텍스트 상자가 더 이상을 사용할 수 있습니다 또는 ControlCollection.Remove

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

시도

+0

와 루프를 들어 사용하여 사용할 수 있습니까? 콘텐츠를 제거하지 않으면? –

+0

Groupbox를 비우지 만 참조 된 내용을 삭제하지 않으려합니다. – Yui

+0

숨기시겠습니까? : D – Pyromancer

답변

2

존재하기 때문에 시간이 예외가 발생하지 않습니다

+2

또는 groupbox.Controls.Clear(); – Phil

+0

그 작품, 고마워요! – Yui

+0

좋은 한 필, 더 나은 대답이되어야합니다. –

1

당신은 당신이 다음 빈 무엇을 의미합니까 Control.ControlCollection.Clear Method

groupBox.Controls.Clear() 

또는

While groupBox.Controls.Count > 0 
    groupBox.Controls.RemoveAt(0) 
End While 

또는 Control.ControlCollection.RemoveAt 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 
관련 문제