tryif(ch.Checked)
{
  m_qx +=  ch.Tag != null? ch.Tag.ToString().Trim() : "";
}

解决方案 »

  1.   

    try
    {
    }
    catch(Exception e)
    {
    MessageBox.Show(e.ToString());
    }
    看代码出错具体再哪一行
      

  2.   

    CheckBox ch=(CheckBox)m_page
    就是这一行,因为我注释掉它,然后用 CheckBox ch=new CheckBox();
    代替,虽然取出的值是空的,但不会报错。
      

  3.   

    思归的解释是对的,
    如果在设计时,Tag为空,运行的时候他的值就是null.
    如果对null.ToString()就会出错。
    if (ch.Tag != null)
    m_qx += ch.Tag.ToString();
      

  4.   

    啊,思归果然是对的,但为什么用CheckBox ch=new CheckBox();
    不会报错呢?这样生成的Tag也应该是null啊
      

  5.   

    综合意见
    if((ch.Checked)&&(ch.Tag != null))
    m_qx += ch.Tag.ToString();
    //
    CheckBox ch=new CheckBox();
    这里所说的是你新分配的实例,而不是你在
    page中的!
      

  6.   

    谢谢大家,找到原因了,本来设计时是每个选择框都有TAG值的,漏写了一个,换成CheckBox ch=new CheckBox()后可能又没选中那个没有值的才会这样
    TheAres(班门斧)刚才看到另一个贴子,为什么要走呢?在这里大家互相帮助不是很好吗,希望你不要走。
      

  7.   

    谢谢yarshray(saga jion)
    CheckBox ch=new CheckBox()的意思我知道,换成它只是想看看错在哪里。