有6个TEXTBOX,命名规则是txtn1,txtn2,txtn3...我想循环判断如果哪个为空则报错,代码如下:for (i = 1; i < 7; i++)
{
   Control txt = new TextBox();
   txt = this.Controls["txtn" + i.ToString()];
   if(txt.text=="")     {
        messagebox.show();
     }
}现在的问题就是红字部分提示空引用异常,然后我就NEW,赋值,变量TXT始终是空的,不知道为什么。强调一下TEXTBOX里面是有内容的,不为空。
            

解决方案 »

  1.   

    for (i = 1; i < 7; i++) 

      TextBox txt = new TextBox(); 
      txt = (TextBox)this.FindControl("txtn" + i.ToString()); 
      if(txt.Text=="")    { 
            messagebox.show(); 
        } 
    } 这样试试
      

  2.   


    我用的VS2005没有FINDCOUNTROL,只有CONTROLS属性
      

  3.   


    for (i = 1; i < 7; i++) 

        Control txt = this.Controls["txtn" + i.ToString()]; 
        if(txt.text=="")    
        { 
            messagebox.show(); 
        } 

    这样的代码没啥问题
    确保你的TextBox的Name是txtn1...txtn6报错是因为你的Controls里面的Key值不对,也就是没找到这个Control,跟TextBox里面有没有内容没关系
      

  4.   

    1.确保 this.Controls["txtn" + i.ToString()] 返回不是null
    2.判断可以加个 if(txt==null || string.IsNullOrEmpty(txt.Text))
      

  5.   


    this.Controls["txtn" + i.ToString()]这个值是空的,名字没有起错,不知道为什么为空....