C# 按名字引用动态控件,模拟动态语言

动态语言,或者叫第4代语言,它的特征是变量可以在运行时生成。比如 Ruby,Python。

不过动态语言一般都是脚本语言哦(解释运行),它的运行效率相对是要低一些的。

作为一种编译型的语言,C#显然不是这样一种语言。但是基本上它也可以模拟这一点,从而获得动态语言的好处。


1,(控件)变量的动态创建。

这个相当容易,甚至连VC也可以做到(控件的动态创建)

C#代码,如

 for(int i=0;i<100;i++)
 {
 TextBox tb = new TextBox();
 tb.Text = "text"+i;
 tb.Top = 120;
 tb.Left = 100+i*10;
 this.Controls.Add(tb);
 tb.Name = "tb_"+i;
 }


2,动态控件的引用

首先,我们编写一个工具函数
  public class ToolClass
    {
        public static  Control GetControlByName(Control ctrl,string sCtrlName)
        {
            if (ctrl.Name == sCtrlName)
                return ctrl;
            else 
                foreach (Control subCtrl in ctrl.Controls)
                {
                    Control sub = GetControlByName(subCtrl, sCtrlName);
                    if (sub != null)
                        return sub;
                }
            return null;
        }
    }

比如我现在想找到第9个动态生成的文本框变量,那么使用如下代码即可

            TextBox textbox= (TextBox)ToolClass.GetControlByName(this,"tb_" + 9);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值