双击treeview节点时, 
禁止自动展开或者折叠那个beforexpand或者beforecollapse事件根本没有catch到..

解决方案 »

  1.   

    private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
     {
                this.treeView1.Nodes[0].Collapse();
     }
      

  2.   

    在TreeView的Double_Click事件中
    判断节点的状态:如展开,则折叠;如折叠,则展开。(反正就是再执行一次相反的操作)
      

  3.   

    采用TreeView的Double_Click事件来处理,也可以用beforexpand事件,不过要判断当前鼠标的状态,有点困难
      

  4.   

    把以前的思维反过来就ok吧?void Data_Bound(Object sender, TreeNodeEventArgs e)
      { 
       
        if(e.Node.Depth == 1)
        {      // Expand the node using the Expand method.
          e.Node.Collapse();    }
        else
        {
          e.Node.Expand();    }  }
      

  5.   

    songhtao(三十年孤独) ////
    也跑来C#区了呀...
      

  6.   

    在WndProc函数里把WM_NOTIFY中的TVN_ITEMEXPANDING,TVN_ITEMEXPANDED 试试.
      

  7.   

    brucenan999(布鲁斯南) ( ) 信誉:99    Blog   加为好友  2007-7-10 14:16:12  得分: 0  
     
     
       
    在WndProc函数里把WM_NOTIFY中的TVN_ITEMEXPANDING,TVN_ITEMEXPANDED 试试.  
     
    ///////////////////////////////////////////////////这样不会把正常点击节点展开..折叠也屏蔽吧?
      

  8.   

    这个不太清楚,我在C#里没有搞到具体的值,试不出来.应该可以区分开吧,TREEVIEW展开结点一种是双击结点,还有是点击前面的小加号.
    窃以为:)不过你不就是不想让它展开吗?
      

  9.   

    如果仅仅是不让展开好办: private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
            {
                e.Cancel = true;
            }就可以了,但是我觉得楼主应该是还想让点+时能点开,只是屏蔽双击吧?
      

  10.   

    重写WndProc ( ref System.Windows.Forms.Message m )拦截treeView1双击消息即可
      

  11.   

    重写WndProc ( ref System.Windows.Forms.Message m )拦截treeView1双击消息即可///////
    这个咋写...呵呵