c# tcbs之递归方法查找符合条件的控件

 public CoreTextBox FindAccountNumberTextBox(Control parentControl) //parentcontrol在此为窗体
        {
            CoreTextBox textBox = null;//要返回匹配条件的文本框(当然经过TCBS封装过的)
            if (parentControl != null) //判断方法传入参数是为空
            {
                textBox = parentControl as CoreTextBox;//传入参数可能为窗体或窗体的子控件,通过as进行灵活操作,用as即使转换不成功,也只是返回NULL,而不是异常

                //此IF是个匹配条件,与上面的as结合起来,textbox!=null表明它是coretextbox
                //textbox.use表明文本框的用途必须是accountnumber,其它文本框就过滤掉了
                if ((textBox != null) && (textBox.Use == CoreTextBox.TextBoxUse.AccountNumber))
                {
                    return textBox;//符合文本框且文本框用途是accountnumber才返回textbox
                }
                if (parentControl.HasChildren)//传入的方法参数为窗体,haschildren属性就是真,表明有子控件
                {
                    //遍历有子控件的窗体
                    for (int i = 0; i < parentControl.Controls.Count; i++)
                    {
                        //注:在此又调用本身方法(递归,即方法调用自己),只是此时方法参数由原来的窗体变为窗体下在遍历的某个子控件
            //在此为窗体某个textbox(coretextbox),执行到此方法时,又开始从此方法的开头部分执行,逻辑为:
            //判断此子控件不空,且是文本框,然后,判断它的用途是不是acctountnumber,发现有些文本框不是,就不会执行对应if语句,
            //接着继续执行判断此子控件是否有子控件,发现文本框没有子控件,不再执行最后的遍历代码;依此逻辑重复循环其它的子控件
            //仅找到一个符合条件的子控件
                        textBox = this.FindAccountNumberTextBox(parentControl.Controls[i]);
                        //找到了此子控件,就返回此子控件
            if (textBox != null)
                        {
                            return textBox;
                        }
                    }
                }
            }
            return null;//方法参数为空,直接返回null
        }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-721447/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-721447/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值