private void Form1_Load(object sender, EventArgs e)
        {
            Label label5 = new Label();
            label5.Text = null;   //如果把Text换成"label1",前后就相等了
            label5.Name = "label5";          
            this.Controls.Add(label5);
        }
 private void button1_Click(object sender, EventArgs e)
        {
            Label a = new Label();
             a = this.Controls["label5"] as Label;
            if(a.Text ==null)    //换成"label1"
            a.BackColor = Color.Red;
        }上述代码,我在Load事件中生成了一个标签控件,并在button1的Click事件中使用这个标签
如果标签的text属性不为null,label5.Text = a.Text;如果标签的text属性设置为null,为什么二者就不相等了,我认为
a.Text还是应该为null啊,
请大师指教....谢谢

解决方案 »

  1.   

    你可以设置为""试试看
    null毕竟是个特殊的东西
      

  2.   

    if (string.IsNullOrEmpty(a.Text))
    {
     ...
    }
      

  3.   

    貌似控件的相关属性不能设置为null的,不然会在显示时报错
      

  4.   

        这个  Text  即使你设置为null  但是他就是string类型的东西  所以你这样做是没有意义的  这个控件的Text还是为“”不是null
        另外 Label是对象引用  既然a = this.Controls["label5"] as Label;  前面不应该去new
           而且这个代码怪怪的label5的创建应该在外面 怎么在Load里
            这样后面a = label5;就可以了  就不用反复转换了
      

  5.   

    label5.Text="";
    一般用的时候 都不给null