none
TreeView 右鍵問題 RRS feed

  • 問題

  • 我有2個TreeView控制項的問題要問各位前輩
     
    1.
    在程式執行中TreeView有2個節點A和B
    其中A被反白
    然後我在B按右鍵 ,B的位置出現了contextMenuStrip
    但還是A被反白,B沒有被反白
     
    要如何解決,使B被反白
     
    2.
    要如何使樹狀圖一直保持在展開
    最算在父節點雙擊也不會收縮
    2008年7月28日 上午 10:09

解答

  • 問題1我已經嘗試出解決的方法了
    只剩下問題2還沒找到解決的方法
     
    以下為我的CODE
    Code Snippet
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        treeView1.SelectedNode = e.Node;           
    }

     

     

     
    另外這是我用Google查到的方法
    Code Snippet
     
    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            TreeNode node 
    = treeView1.GetNodeAt(e.X, e.Y);
            if (node != null)//右键未选中节点,不改变当前选中的节点。VS2005如此。
                this.treeView1.SelectedNode = node;
        }

    }

    http://www.cnblogs.com/ClarkChan/archive/2007/09/05/883477.html

     

            
    2008年7月28日 下午 07:11
  • 回問題2.

     

    在TreeView.BeforeCollapse 事件(Event)中,

    一直取消即可.

     

    ex.

            private void treeView1_BeforeCollapse(object sender, TreeViewCancelEventArgs e)
            {
                e.Cancel = true;
            }

    2008年7月29日 上午 01:40

所有回覆

  • 問題1我已經嘗試出解決的方法了
    只剩下問題2還沒找到解決的方法
     
    以下為我的CODE
    Code Snippet
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        treeView1.SelectedNode = e.Node;           
    }

     

     

     
    另外這是我用Google查到的方法
    Code Snippet
     
    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            TreeNode node 
    = treeView1.GetNodeAt(e.X, e.Y);
            if (node != null)//右键未选中节点,不改变当前选中的节点。VS2005如此。
                this.treeView1.SelectedNode = node;
        }

    }

    http://www.cnblogs.com/ClarkChan/archive/2007/09/05/883477.html

     

            
    2008年7月28日 下午 07:11
  • 回問題2.

     

    在TreeView.BeforeCollapse 事件(Event)中,

    一直取消即可.

     

    ex.

            private void treeView1_BeforeCollapse(object sender, TreeViewCancelEventArgs e)
            {
                e.Cancel = true;
            }

    2008年7月29日 上午 01:40