Winform开发遇到的问题之查找动态生成的控件

1.遍历控件:


           //gbfill.Control:需要遍历的容器
           foreach (Control vControl in gbfill.Controls)
            {
                //需要查找的控件
                if (vControl is Label)
                {
                    //找到控件做的的操作
                    string lblname = vControl.Name;
                    Control c = ExtensionClass.FindControl(gbfill, lblname);
                    string[] sub = c.Text.Split(':');
                    string[] areaname = sub[1].Split(new string[] { "\r\n" }, StringSplitOptions.None);
                    areaname = areaname.Where(s => !string.IsNullOrEmpty(s)).ToArray();
                    int y = c.Location.Y;
                    int x = c.Location.X;
                    if (c != null)
                    {
                        str += "{" + "'" + "AreaName" + "'" + ":" + "'" + areaname[0] + "'" + "," + "'" + "Top" + "'" + ":" + "'" + y + "'" + "," + "'" + "Left" + "'" + ":" + "'" + x + "'" + "},";
                    }
                    else
                    {
                        MessageBox.Show("很遗憾,没找到控件!");
                    }
                }
            }

2.查找控件:

/// <summary>
        /// 按名称查找控件
        /// </summary>
        /// <param name="parentControl">查找控件的父容器控件</param>
        /// <param name="findCtrlName">查找控件名称</param>
        /// <returns>若没有查找到返回NULL</returns>
        public static Control FindControl(Control parentControl, string findCtrlName)
        {
            Control _findedControl = null;
            if (!string.IsNullOrEmpty(findCtrlName) && parentControl != null)
            {
                foreach (Control ctrl in parentControl.Controls)
                {
                    if (ctrl.Name.Equals(findCtrlName))
                    {
                        _findedControl = ctrl;
                        break;
                    }
                }
            }
            return _findedControl;
        }


        //用法
         Control c = FindControl(gbfill, con.Name);//gbfill:控件所在的容器;con.name:控件名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值