string str="textBox1"
我现在想控制文本框textBox1的属性
比如textBox1.Text="abc";
请问如何将这个字符串改变成对控件的引用?

解决方案 »

  1.   

    这就是反射啊.看看reflection吧.
      

  2.   

    to Red_angelX
    这是一个winform应用
      

  3.   


    this.Controls.Find()或
    遍历this.Ctrols可以得到control然后
    ((TextBox)control).Text = "abc";不幸的是,我实际上用的控件是ToolStripStatusLabel(当时是为了简化题目)
    ((ToolStripStatusLabel)control).Text = "abc";
    会提示不能转换,
    有什么好方法么。
      

  4.   

    this.Controls.Find()
    只在webform下有用,在winform下没有相应的方法。
    如果是在winform下的话,要用反射
    参见
    http://blog.csdn.net/tjvictor/archive/2007/01/24/1492079.aspx
      

  5.   

    如果是个textBox这个方法可以
    遍历this.Ctrols可以得到control然后
    ((TextBox)control).Text = "abc";
    但是ToolStripStatusLabel怎么做呢?
      

  6.   

    str = "textBox2";
                foreach (Control control in this.Controls)
                {
                    if (control.Name == str)
                        ((TextBox)control).Text = "abc";
                }
      

  7.   

    //2005
    Control[] vControls = Controls.Find("button2", true);
    if (vControls.Length >= 1) vControls[0].Text = "Zswang 路过";