解决方案 »

  1.   

    我还是贴代码来看吧
    foreach (TextBox tb in txtMemoData)
                {
                    if (tb != null)
                    {
                        if (tb.Tag.ToString() == "TestName")
                        {
                            tb.Text = e.TestConditionsModel.TestName;
                        }
                    }
                }
    如果为空的话,那后面的执行应该没什么问题吧,但是执行的时候提示用new实例化
      

  2.   

    txtMemoData是什么,如果他是textbox集合的话,你当初往里放元素时,有null吗
    你是否应该判断控件的类型是不是textbox
      

  3.   

    foreach (TextBox tb in this.Controls.OfType<TextBox>())
      

  4.   

    同意楼上的。
    你的txtMemoData和txtMemo都是什么类型?看上去有点像控件。
    先确定了在来说判断问题。
      

  5.   

    txtMemoData是我创建的textbox类型的控件数组,窗体加载后界面上的textbox都会放到txtMemoData,不过txtMemoData里面确实有null的,因为我声明的时候多声明了一些。我以为用判断能过滤掉呢。。
      

  6.   

    TextBox[] txtMemoData = new TextBox[50];
    因为界面上可能不到50个textbox,所以会有些是null的
      

  7.   

    另外
    tb.Tag
    e
    e.TestConditionsModel
    e.TestConditionsModel.TestName
    都可能是null
      

  8.   

    额,我确定是tb那里是null,因为出错是是在if (tb.Tag.ToString() == "TestName")这一行
      

  9.   

    我的困惑是,既然tb是null,为什么if(tb!=null)还能通过呢
      

  10.   

    本帖最后由 caozhy 于 2014-07-15 15:03:04 编辑
      

  11.   

    哎,真是太不仔细了,原来是tb.tag是null,感谢大家了
      

  12.   


    如果你确定tb不为null,那么判断肯定可以通过。
    但是,tb.Tag这里tag可能是null。