首页
学习
活动
专区
工具
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

C# Web控件与数据感应之 TreeView 类 续篇

关于内置 TreeView 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,在我的前期文章《C# Web控件与数据感应之 TreeView 类》,对于 Microsoft.Web.UI.WebControls.TreeView...已做了详细介绍,本文则继续介绍 C# 实现 System.Web.UI.WebControls.TreeView 的一些实用方法。...《C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取》 范例运行环境 操作系统: Windows Server 2019 DataCenter 数据库:Microsoft...SQL Server 2016 .net版本: .netFramework4.0 或以上 开发工具:VS2019 C# 一些实用方法 获取数据进行呈现 simpleSystemTreeview方法主要是通过...DataSet数据源进行提取呈现在 TreeView 控件上,方法返回 int 类型,表示成功返回当前节点节点数,其参数设置见下表: 序号 参数名 类型 说明 1 tv System.Web.UI.WebControls.TreeNodeCollection

7610

C# Web控件与数据感应之 TreeView

在我的前期文章《C# DataSet结合FlyTreeView显示树状模型数据》,对于 FlyTreeView 已做过介绍,本文则介绍C# 实现 Microsoft.Web.UI.WebControls.TreeView...《C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取》 范例运行环境 操作系统: Windows Server 2019 DataCenter 数据库:Microsoft...SQL Server 2016 .net版本: .netFramework4.0 或以上 开发工具:VS2019 C# 一些实用方法 获取数据进行呈现 simpletreeview方法主要是通过DataSet...数据源进行提取呈现的TreeView控件上,方法返回 int 类型,表示成功返回当前节点节点数,其参数设置见下表: 序号 参数名 类型 说明 1 tv Microsoft.Web.UI.WebControls...: SetTreeViewById(tv.Nodes, "0101"); 成功后如下图: 获取所有结点的索引 GetTreeViewAllNodes 方法获取当前给定集合的所有结点的索引,并存储到指定的

5510

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

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

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

45200

WinForm TreeView的一点用法

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

1.3K10

通过键盘方向键控制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

79410
领券