你能确定tvTreeView.SelectedNode、tvTreeView.SelectedNode.Parent、
tvTreeView.SelectedNode.Parent.Parent不为null吗???是不是要先判断一下呢?

解决方案 »

  1.   

    你在双击事件这样试试
    if(e.node.Parent.Parent.Text=="灵活查询")
    {
    ………
    }
      

  2.   

    就是在IF条件上出错,说是未将对象引用设置到对象实例。
    通过监视看到这时默认选中的节点根节点"报表"。
    既tvTreeView.SelectedNode.Text="报表"
      

  3.   

    if(e.node.Parent.Parent.Text=="灵活查询")
    输入e后没有node选项
      

  4.   

    if(tvTreeView.SelectedNode.Parent.Parent!=null  && tvTreeView.SelectedNode.Parent.Parent.Text=="灵活查询")
    {
    ………
    }
      

  5.   

    if(tvTreeView.SelectedNode.Parent.Parent!=null  && tvTreeView.SelectedNode.Parent.Parent.Text=="灵活查询")
    {
    ………
    }
    这样写也不行,还是同样的错误
      

  6.   

    我的完整的代码是:
    private void tvTreeView_DoubleClick(object sender, System.EventArgs e)
    {
        if(tvTreeView.SelectedNode.Parent.Parent.Text=="灵活查询")
        {
          showReportForm();
        }
    }
      

  7.   

    我想不应该这样,因为你无法知道双击在哪一级上,无法确定什么
    .SelectedNode.Parent.Parent
    建议利用Node.Tag来保存“灵活查询“
    在建立TreeView 时,将每一节点的Tag设置为其父节点的Tag.ToString() + 本节点的相关内容即可。
      

  8.   

    谢谢ZS1024cn.
    出现实错的问题已解决了,但又有新问题了。如果现在选中了一个最底层的叶节点。但却到其它节点处双击展开或合并符(+、-).却调出先前选中节点下的内容。
    请问怎样才能取到鼠标所在的节点值???