for (int i = 1; i < 5; i++)
            {
                var name = "radioButton" + i;
                string n = this.Controls[name].Tag.ToString();
                
                if (n  == "Number")
                {                MessageBox.Show("1111");                }
这句为什么报错“System.NullReferenceException”类型的未经处理的异常?

解决方案 »

  1.   

    http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html调试一下,目测this.Controls[name].Tag这句的问题。
      

  2.   

    radioButton某個控件的tag是NULL,或者沒有4個radioButton
      

  3.   

    我手动给tag赋值了 但是string n 的值还是null
      

  4.   

    我手动给tag赋值了 但是string n 的值还是null
    首先呢?你刪除所有radioButton,然後就保留radioButton1,然後賦值radioButton1的Tag值,然後
    for (int i = 1; i <2; i++)
    這樣子能不能成功
      

  5.   

    我手动给tag赋值了 但是string n 的值还是null
    首先呢?你刪除所有radioButton,然後就保留radioButton1,然後賦值radioButton1的Tag值,然後
    for (int i = 1; i <2; i++)
    這樣子能不能成功
    这样可以 这是什么原理?
      

  6.   

    我手动给tag赋值了 但是string n 的值还是null
    首先呢?你刪除所有radioButton,然後就保留radioButton1,然後賦值radioButton1的Tag值,然後
    for (int i = 1; i <2; i++)
    這樣子能不能成功
    这样可以 这是什么原理?
    判斷一下NULL值啊
     for (int i = 1; i < 5; i++)
                {
                   var name = "radioButton" + i;
                    if (this.Controls[name] != null)
                    {
                        if (this.Controls[name].Tag != null)
                        {
                            string n = this.Controls[name].Tag.ToString();
                            if (n == "Number")
                            {
                                MessageBox.Show("1111");
                            }
                        }
                    }            }
      

  7.   

    你调试一下就知道啦。
    肯定是this.Controls[name]为null
      

  8.   

    就是tag有为空的了
      

  9.   

     string n = this.Controls[name].Tag.ToString();
    断点
      

  10.   


    this.Controls[name]
    这个地方验证一下