您的位置:首页 > 编程语言 > C#

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

2011-12-03 10:42 330 查看
动态语言,或者叫第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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息