C#实现动态添加和删除控件

本文介绍了一个C#项目中如何动态添加和删除GROUPBOX控件。点击添加按钮,界面下方会自动生成新的GROUPBOX行;删除操作则移除最后一行开始的GROUPBOX,通过遍历和定位控件的Y轴坐标来实现。实现过程包括设置全局变量跟踪行数,编写动态添加和删除的代码段。

最近弄一个项目,需要动态添加控件和删除控件.原始界面如下:

 

如上图操作添加按钮,则下面自动增加一行GROUPBOX控件,操作删除则自动删除最后一行开始的BROUPBOX控件.

实现步骤如下:

1)定义一个记录行数的全局变量

  public int watch_num = 0; 


2)编写动态添加的代码

  private void addWatchFrom(int _series,string _diskName) {
            try
            {

                GroupBox s1 = new GroupBox();

                s1.Top = 200 + _series*90;
                s1.Left = 8;

                s1.Width = 260;

                s1.Height = 80;

                              this.Controls.Add(s1);







            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message); 

            }
        
        }

        //添加按钮的操作
        private void button3_Click(object sender, EventArgs e)
        {

            addWatchFrom(watch_num, "C");

            watch_num++;

        }


3)编写删除按钮的操作。这儿需要先遍历所有添加的GroupBOX控件,然后依据其纵向Y轴的变化,定位到需要删除的控件,实现删除。注意控件编号要减一,否则会异常。

  //删除控件
        private void button4_Click(object sender, EventArgs e)
        {
            if ((this.watch_num-1) >=0)//if 1
            {

                
               foreach (Control  obj0 in this.Controls )//判断界面上的控件 
               {
                   if (obj0.GetType().ToString().Equals("System.Windows.Forms.GroupBox")) 
                 {

                                        if (obj0.Location.Y ==(200 + (this.watch_num-1) * 90))
                     {
                                                 this.Controls.Remove(obj0);

                         if (this.watch_num > 0) {
                             this.watch_num--;
                         }
                         break;
                     }
                     
                     //此时只要执行你的删除控件代码即可
                 }

               } 
             

            }//if 1
        }


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值