2012-12-14 2 views
1

나는 동적으로 생성 한 컨트롤을 동적 컨트롤을 제거하고 나는 또한 컨트롤을 제거하는 버튼을 생성 한 컨트롤 라인 코드에있는이창 형태의 패널에 패널에서

int c = 0; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     int v; 
     v = c++; 
     panel1.VerticalScroll.Value = VerticalScroll.Minimum; 
     ComboBox combo = new ComboBox(); 
     combo.Name = "combobox" + v ; 
     combo.Location = new Point(30, 5 + (30 * v)); 

     ComboBox combo2 = new ComboBox(); 
     combo2.Name = "combobox2" + v ; 
     combo2.Location = new Point(170, 5 + (30 * v)); 

     TextBox txt = new TextBox(); 
     txt.Name = "txtbx" + v; 
     txt.Location = new Point(300, 5 + (30 * v)); 

     TextBox txt2 = new TextBox(); 
     txt2.Name = "txtbx2" + v; 
     txt2.Location = new Point(450, 5 + (30 * v)); 

     TextBox txt3 = new TextBox(); 
     txt3.Name = "txtbx3" + v; 
     txt3.Location = new Point(600, 5 + (30 * v)); 

     Button btn = new Button(); 
     btn.Name = "btn" + v; 
     btn.Text = "Remove"; 
     btn.Location = new Point(750, 5 + (30 * v)); 



     panel1.Controls.Add(combo); 
     panel1.Controls.Add(btn); 
     panel1.Controls.Add(txt); 
     panel1.Controls.Add(combo2); 
     panel1.Controls.Add(txt2); 
     panel1.Controls.Add(txt3); 
     btn.Click += new EventHandler(btn_Click); 

    } 
    private void btn_Click(object sender, EventArgs e) 
    { 

     // what i have to write here for removing only the textbox and combobox and button itself to be removed only the controls which are aside the button 

    } 

무엇인지 내가 만 텍스트 상자 및 콤보 상자와 버튼 자체를 제외하고 다른 라인 컨트롤이에 의해 영향을해서는 안 버튼있는 컨트롤을 제거 할을 제거하기위한 버튼 클릭 이벤트에

답변

2
foreach(var item in panel1.Controls) 
{ 

    if(item is TextBox || item is ComboBox) 
    { 
      panel1.Controls.Remove(item); 
    } 


} 

를 작성해야 또는 대안 당신은 마에 수 이거 아래에.

var list = (from object item in panel1.Controls where item is TextBox || item is ComboBox select item as Control).ToList(); 

      list.ForEach(x => panel1.Controls.Remove(x)); 
+0

그리고 어떻게 그것을 제거 할 수 있습니다) C#을 매우 도움이되지 않습니다? –

+0

오류가 "제거"에 표시됩니다. –

+0

어떤 오류가 있습니까? 사람들이 도움을 얻고 자 할 때마다 자세한 내용을 제공해주십시오 .... –

1

포함하는 요소에서 제어 이름을 찾아야합니다.

이것은 개발하는 프레임 워크에 따라 다릅니다.

그런 다음 당신은 당신의 솔루션에있는 버튼에 대한

SomeParentElement.Comtrols.Remove(SomeElement) 
+0

당신은 컨트롤이 동적으로 생성된다는 것을 알려 주실 수 있습니다. 많은 이름을 하나씩 가지고 있기 때문에 컨트롤의 이름을 찾는 방법과 라인에있는 컨트롤을 제거해야합니다. –

+0

WinForms로 개발하고 있습니까? –

+0

yess 저는 윈도우 폼으로 작업하고 있습니다. csharp –

관련 문제