本文介绍了删除动态控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在面板上动态生成控件,我还生成了一个用于删除控件的按钮,

控件在行代码上,





I have dynamically generated controls on the panels and i have also generated a button for removing the controls,
controls are on a line code is,


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

        }





我有什么写入按钮单击事件只删除文本框和组合框和按钮本身被删除按钮旁边的其他行控件不应该受到影响,



what i have to write in the button click event for removing only the textbox and combobox and button itself to be removed the controls which are aside the button other line controls should not be effected by that,

推荐答案


private void button2_Click(object sender, EventArgs e)
 {
     panel1.Controls.OfType<TextBox>().ToList().ForEach(t => panel1.Controls.Remove(t));
     panel1.Controls.OfType<ComboBox>().ToList().ForEach(t => panel1.Controls.Remove(t));

 }





我用Windows窗体证明它,包括面板和你要添加的控件是递增一行



I prove it with a windows form including the panel and the control that you are adding is incrementing a line



这篇关于删除动态控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 21:46