日期:2014-05-18  浏览次数:21317 次

treeview展开控制(细节)
winform 中Treeview控件怎样选中父节点时子节点全部展开,选中其他父节点时原先展开的关闭,就像windows系统的资源管理器一样。

------解决方案--------------------
这个应该是你的需求


C# code
  /// 节点的展开和折叠
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvDocInfo_AfterExpand(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Parent == null)
            {
                TreeView tree = (TreeView)sender;
                tree.AfterCheck -= new TreeViewEventHandler(this.tvDocInfo_AfterExpand);
                //折叠其他同级节点   
                TreeNode parentNode = e.Node.Parent;
                if (parentNode != null)
                {
                    foreach (TreeNode tn in parentNode.Nodes)
                    {
                        if (tn != e.Node)
                            tn.Collapse();
                    }
                }
                else
                {
                    foreach (TreeNode tn in tree.Nodes)
                    {
                        if (tn != e.Node)
                            tn.Collapse();
                    }
                }
            }


        }