如题,要删除动态生成的控件,如何操作。或者说怎么保存我代码外面new过的所有控件,万分火鸡,请各位大侠帮忙啊

解决方案 »

  1.   


                Control[] ct = new Control[10];  
                ct[0] = dataGridView1;  //假设生成了一个dataGridView,name是dataGridView1
                .............//添加其他控件
                  
                  //删除动态生成的控件
                  foreach(Control ct0 in ct )
                {
                    this.Controls.Remove(ct0);  
                }试试呢
      

  2.   

    从父控件中移除,再调用控件的Dispose()
      

  3.   

    补充:我在事件a中new了个控件,如何在事件b中对他的text赋值?我可真是个菜鸟
      

  4.   

    你把那个控件类定义为全局变量即可;我给你写了一个例子:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            int i = 0;
            TextBox[] textboxshow = new TextBox[3];        private void button1_Click(object sender, EventArgs e)
            {
             
               textboxshow[0] = new TextBox();
               textboxshow[0].Text = "第一控件";
               textboxshow[1] = new TextBox();
               textboxshow[1].Text = "第二个控件";
               textboxshow[2] = new TextBox();
               textboxshow[2].Text = "第三个控件";
                int a = 0;
                foreach (TextBox b in textboxshow)
                {
                    this.Controls.Add(b);
                    b.Location = new Point(a + 50, 100);
                    a = a + 200;
                }        }        private void button2_Click(object sender, EventArgs e)
            {
                if(i<=2)
                this.Controls.Remove(textboxshow[i]);
                i++;
            }