首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在选择一个节点时折叠TreeView的其他节点

在选择一个节点时折叠TreeView的其他节点
EN

Stack Overflow用户
提问于 2012-07-10 04:34:16
回答 3查看 7.7K关注 0票数 2

我在*winform应用程序上有一个treeview控件。在这里,我要做的是:在他的级别上折叠所有其他节点,并且只扩展选定的节点。例如,假设场景:-所有科目+计算机科学+数学

根节点是"All Subject“,两个子节点1)计算机科学和2)E 211数学。这两个子节点具有更多的子节点。

当我选择“计算机科学”时,应该折叠数学节点,扩展计算机科学节点。如何实现这一点?欢迎关于实现这一目标的建议。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-10 05:16:43

编辑(感谢汉斯·帕桑特) Handel AfterSelectBeforeSelect事件,并折叠其他兄弟节点。就像这样:

代码语言:javascript
复制
private void TreeViewAfterSelect(object sender, TreeViewCancelEventArgs e)
{
    foreach (TreeNode node in e.Node.Parent.Nodes)
    {
        if(node != e.Node)
            node.Collapse();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-07-10 05:07:28

检查treeview节点的Collapse()CollapseAll()Expand()ExpandAll()方法。

代码语言:javascript
复制
treeView1.SelectedNode.Collapse();

阅读MSDN上的崩溃CollapseAll扩展

票数 0
EN

Stack Overflow用户

发布于 2015-12-04 15:39:04

在Ria解决方案的基础上,我们可以使用递归同时折叠兄弟姐妹和每个兄弟姐妹的子节点。以下是WPF的工作:

代码语言:javascript
复制
    private void CollapseAll(ItemsControl Items, bool Collapse)
    {
        foreach (object obj in Items.Items)
        {
            ItemsControl ChildControl = Items.ItemContainerGenerator.ContainerFromItem(obj) as ItemsControl;
            if (ChildControl != null)
            {
                CollapseAll(ChildControl, Collapse);
            }
            TreeViewItem Item = ChildControl as TreeViewItem;
            if (Item != null) Item.IsExpanded = false;
        }
    }

    private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {
        TreeViewItem CurrentItem = (TreeViewItem)treeView1.SelectedItem;
        if (CurrentItem == null) return;
        if (!(CurrentItem.Parent is TreeViewItem)) return;
        TreeViewItem Parent = (TreeViewItem)CurrentItem.Parent;
        if (Parent == null) return;
        foreach (TreeViewItem TreeViewItem in Parent.Items)
        {
            if (TreeViewItem != CurrentItem)
            {
                CollapseAll(TreeViewItem, true);
                TreeViewItem.IsExpanded = false;
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11406669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档