首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c#获取TreeView Parent节点列表

在C#中,获取TreeView控件中Parent节点的列表可以通过以下方法实现:

  1. 递归遍历TreeView节点,将所有Parent节点添加到列表中。
  2. 使用循环遍历TreeView节点,将所有Parent节点添加到列表中。

以下是一个示例代码,展示如何获取TreeView控件中Parent节点的列表:

代码语言:csharp
复制
List<TreeNode> parentNodes = new List<TreeNode>();

// 递归遍历TreeView节点
private void GetParentNodes(TreeNode node)
{
    if (node.Parent != null)
    {
        parentNodes.Add(node.Parent);
        GetParentNodes(node.Parent);
    }
}

// 循环遍历TreeView节点
private void GetParentNodes(TreeNode node)
{
    while (node.Parent != null)
    {
        parentNodes.Add(node.Parent);
        node = node.Parent;
    }
}

在上述代码中,我们定义了一个名为parentNodes的列表,用于存储Parent节点。我们分别提供了两个方法GetParentNodes,用于递归遍历和循环遍历TreeView节点,并将Parent节点添加到列表中。

需要注意的是,在递归遍历时,需要注意避免无限递归,即Parent节点的Parent属性不能为当前节点本身。在循环遍历时,需要注意避免无限循环,即Parent节点的Parent属性不能为当前节点本身或其祖先节点。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# winform treeview添加右键菜单并选中节点

(1)要向窗体添加一个TreeView控件 (2)再添加一个ContextMenuStrip控件; (3)就要给TreeView添加一个MouseDown事件,代码如下: private void treeView1...            {                 Point ClickPoint = new Point(e.X, e.Y);                 TreeNode CurrentNode = treeView1...= null)//判断你点的是不是一个节点                 {                     CurrentNode.ContextMenuStrip = contextMenuStrip1...;                     name = treeView1.SelectedNode.Text.ToString();//存储节点的文本                     treeView1....SelectedNode = CurrentNode;//选中这个节点                 }             }         }

2.5K50

C#实现树型结构TreeView节点拖拽的简单功能(转)

2:父亲节点总不能拖拽到自己的子节点上,那不是死循环或者乱了辈份了不是?   为了让TreeView支持拖拽功能,需要注意以下几个属性设置及相应的事件代码。  ...                TreeNode targetTreeNode;                 // 获取当前光标所处的坐标                 // 定义一个位置点的变量...,保存当前光标所处的坐标点                 Point point = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));                 ...// 根据坐标点取得处于坐标点位置的节点                 targetTreeNode = ((TreeView)sender).GetNodeAt(point);                 ...// 获取被拖动的节点                 treeNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");

3K10

Qt树形控件QTreeView使用1——节点的添加删除操作

QStandardItemModel用于列表和表格控件还是很好理解的,但是用于树形控件就有点难以理解了,实际上,在树形控件中, QStandardItemModel也挺简单的。...1.3.2 兄弟节点获取 节点间无父子关系,有并列关系的就称为兄弟节点,如下图红框内的10个节点都属于兄弟节点。...最常用的兄弟节点获取是“左右”节点,例如点击“频道1”要知道频道1的信息,就需要获取“频道1”右边的兄弟节点“频道1信息说明” QModelIndex QAbstractItemModel::sibling...例如把 on_treeView_clicked ( const QModelIndex & index )的代码改一下,每点击一条目,无论点击哪里,都能获取它的“名称”和...,因此,得到顶层节点需要自己写操作,下面是根据任意一个节点获取其可见顶层节点的代码: QStandardItem* getTopParent(QStandardItem* item){ QStandardItem

5K30

WinForm TreeView的一点用法

TreeView一般都包含父节点和子节点,常规情况下有以下几种情况: 1.选中父节点之后,该父节点下面的所有子节点都被选中,取消选择父节点,则该父节点下面所有的子节点全部跟着取消选择。...p_TreeNode.Checked && p_TreeNode.Parent !...上面的所有菜单组以及子菜单全部都勾选上,如果我点击“普通用户”,则那些系统设置相关的内容都不勾选,这就是需求,下面我们来看看如何实现这个需求: 首先,我根据不同的角色返回了一张表或者是一个集合,当用户点击角色名称的时候就已经获取到了这个表或者集合...,我们要做的就是匹配界面上面TreeView里面的所有节点和返回来的那一张Table或者集合,如果能够完全匹配,那么就将其Checked属性设置为True,否则不理它,这里用到了递归来遍历这棵树,递归代码如下...: /// /// 递归遍历TreeView,然后对比已有的数据和TreeView上面的节点数据, /// 如果匹配成功,则选中TreeView上面的相应节点

1.3K10

【愚公系列】2023年10月 WPF控件专题 TreeView控件详解

自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...TreeView控件的基本用法如下:在XAML中添加TreeView控件:添加根节点和子节点: e){ // 获取选中节点 var selectedItem = treeView.SelectedItem as TreeViewItem; ...}1.属性介绍WPF中TreeView...IsSelected:表示当前节点是否选中。ItemContainerStyle:用于指定TreeView的每个节点的样式。...组织架构图——TreeView控件可以展示组织架构图,比如公司的部门、职位等层级关系。菜单下拉列表——TreeView控件可以作为菜单下拉列表的一种实现方式,用户可以通过点击树节点来选择不同的选项。

43900

通过键盘方向键控制TreeView节点的移动

本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141932204/ View Code      #region "控制树节点移动...,向左右下上"         ///          /// 通过Ctrl+键盘移动选定的树节点         ///          /// <param...                        if (TreeView1.SelectedNode.Parent == null)                         {                             ....SelectedNode.Parent.Parent == null)                             {                                 TreeView1...}                             else                             {                                 TN.Parent.Parent.Nodes.Add

79210
领券