如何从 TreeNode.FullPath 数据获取实际的树节点?

2023-12-24

我想存储 TreeNode.FullPath 中的一些数据,然后我想重新扩展到目前为止的所有内容。有简单的方法吗?

多谢!


您可以将其编写为扩展方法TreeNodeCollection:

using System;
using System.Linq;
using System.Windows.Forms;

namespace Extensions.TreeViewCollection
{
    public static class TreeNodeCollectionUtils
    {
        public static TreeNode FindTreeNodeByFullPath(this TreeNodeCollection collection, string fullPath, StringComparison comparison = StringComparison.InvariantCultureIgnoreCase)
        {
            var foundNode = collection.Cast<TreeNode>().FirstOrDefault(tn => string.Equals(tn.FullPath, fullPath, comparison));
            if (null == foundNode)
            {
                foreach (var childNode in collection.Cast<TreeNode>())
                {
                    var foundChildNode = FindTreeNodeByFullPath(childNode.Nodes, fullPath, comparison);
                    if (null != foundChildNode)
                    {
                        return foundChildNode;
                    }
                }
            }

            return foundNode;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 TreeNode.FullPath 数据获取实际的树节点? 的相关文章

  • 厚壁二维迷宫中的碰撞检测

    我必须使用 Windows Forms 为学校制作一个游戏 我的游戏包括用户必须穿过迷宫 我试图阻止我的用户使用碰撞检测直接穿过墙壁 但由于用于表示墙壁的矩形形状不同而陷入困境 这是游戏的图像 https i stack imgur com
  • 如何使用鼠标拖动和移动winform

    我知道如何通过添加以下代码来 拖动和移动 winform Protected Overrides Sub WndProc ByRef m As Message If m Msg 163 And ClientRectangle Contain
  • 透明窗口层可点击并始终位于顶部

    这是我尝试实现的一些代码 其目的是创建一个透明 全屏 无边框 可点击且始终位于其他窗口之上的表单层 然后 您可以使用 directx 在其顶部进行绘制 否则保持透明 不起作用的部分是点击部分和 directx 渲染 当我运行它时 我基本上在
  • 当 DataSource 更改时 ComboBox 不会自动更新?

    由于某种原因 当从数据源 一个简单的 BindingList 添加或删除项目时 组合框会相应更新 但如果我编辑这样的项目 它不会自动更新 myBindingList index Name NewName myBindingList inde
  • 从 Windows 窗体项目中创建 DLL

    我有一个包含 2 个项目的解决方案 其中一个项目只能从另一个项目运行 我想将它转换为 DLL 以便最终用户无法直接运行它 实际上 他们得到 2 个可执行文件 有没有直接的方法可以做到这一点 而不必复制整个项目 是的 转到 项目属性 应用程序
  • 如何获取电脑中所有打印机的列表

    我需要获取连接到计算机的所有打印机的列表 我如何在 C WinForms 中做到这一点 尝试这个 foreach string printer in System Drawing Printing PrinterSettings Insta
  • 如何通过编码来点击按钮?

    我的程序中有两个按钮 我希望当我按下第一个按钮时 会自动单击第二个按钮 在第一个按钮的事件处理程序中 我想通过编码按下第二个按钮 private void button1 Click object sender EventArgs e pa
  • 为什么最后一个关闭的 MDI 子窗体没有被垃圾回收?

    我们的应用程序中存在内存泄漏问题 我已成功通过以下简单示例复制了其中一个问题 复制设置 1 创建以下辅助类 用于跟踪对象创建 销毁 public class TestObject public static int Count get se
  • 如何在 C# 中使用窗口窗体创建动态下拉列表

    我正在尝试为朋友的手机商店构建一个简单的库存程序 我想使用C 并访问数据库来存储数据 DB 将有 2 个主要列表 devices 品牌 型号 颜色 价格 库存 最小库存 parts 品牌 型号 描述 库存 最小库存 GUI 将使用多个下拉列
  • Winforms 风格/UI 外观和感觉提示

    从多年的 asp net 开发回到 winforms 应用程序 寻找有关如何 设计 winforms 的建议和技巧 类似于我在 asp net 中使用 CSS 母版页的方式 我对如何在一处更新某些类型的控件的字体 颜色感兴趣 如何保持布局的
  • 如何隐藏 Windows 窗体中控件的大小调整手柄?

    我有一个 UserControl 想在设计时隐藏调整大小手柄 就像 TextBoxControl 一样 它只有两个手柄 左手柄和右手柄 文本框的高度是固定的 除非你说它是多行的 在这种情况下 文本框会显示所有九个大小调整手柄 您需要实现一个
  • 无法更新 .mdf 数据库,因为该数据库是只读的(Windows 应用程序)

    我使用 C 创建了一个数据库 Windows 应用程序 我的应用程序在 Windows XP 上成功运行 但在 Vista 或 Windows 7 系统上无法正确执行 我的应用程序显示类似以下内容的消息 无法更新 mdf 数据库 因为该数据
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • 编辑 InitializeComponent() 方法 C#

    我已经浏览了多个资源 试图找到何时手动向 InitializeComponent 添加代码的用例 但没有找到任何具体的内容 这表明我们不应该这样做 InitializeComponent 方法中的代码由设计者生成 不应手动修改 https
  • 如何防止弹出表单夺走父级的焦点

    我有一个小的 windows form 当鼠标悬停在 windows Form 上的某个区域上时 我用它来显示信息 但是当它设置为可见时 它会从父窗口获取焦点 有没有办法防止这种情况 它会导致主窗体在焦点和焦点之间切换时闪烁 时间 2019
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 如何使用 winforms 在 vb.net 中制作大型按钮网格(24x20 或类似)?

    我正在 vb net WinForms 中制作一个座位预订系统 我需要用户能够选择他们想要使用的座位并改变颜色 这样他们就可以知道它已选择 我开始尝试使用按钮 但 480 个按钮严重减慢了表单的加载时间 然后我尝试了在行 列中带有按钮的数据
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro

随机推荐

  • flowtype如何用可选字段注释联合

    如何在流程中实现以下目标 export type Response err string data Array data Array 我想表达一种类型 它返回错误和可选数据 或者不返回错误字段 如果没有 但是 我用它作为 return er
  • “npx tsc --version”报告虚拟机内不同的 TypeScript 版本

    我希望能够跑步npx tsc在我的主机 来宾操作系统上的项目中 但客人正在使用不同的 旧的 版本tsc 我不确定它是从哪里来的 我的设置 主机操作系统 Windows 10 来宾操作系统 Debian 9 我正在使用 VirtualBox
  • 使用 IDisposable 取消订阅事件

    我有一个处理来自 WinForms 控件的事件的类 根据用户正在执行的操作 我引用该类的一个实例并创建一个新实例来处理同一事件 我需要首先从事件中取消订阅旧实例 很简单 如果可能的话 我想以非专有的方式执行此操作 这似乎是 IDisposa
  • JQuery 自动完成:如何强制从列表中选择(键盘)

    我正在使用 JQuery UI 自动完成 一切都按预期进行 但是当我使用键盘上的向上 向下键循环时 我注意到文本框按预期填充了列表中的项目 但是当我到达列表末尾并再次按下向下箭头时这时 我输入的原始术语就会出现 这基本上允许用户提交该条目
  • git p4克隆/同步:如何添加新的P4路径

    我创建了一个 P4 客户端视图规范 并用它制作了一个 git p4 克隆 并定期同步 P4 的更改 效果非常好 有一天 我想向我克隆的 Git 存储库添加另一个 P4 路径 但它卡住了 即使我添加了 git p4 克隆使用的客户端视图规范的
  • mysql 自动终止查询

    mysql 是否有可能自动终止耗时超过 20 秒的查询 我猜您正在寻找名为 mk kill 的 maatkit 实用程序 它将杀死符合某些条件的查询
  • Tf.Print() 不打印张量的形状?

    我使用 Tensorflow 编写了一个简单的分类程序并获取输出 但我尝试打印模型参数 特征和偏差的张量形状 函数定义 import tensorflow as tf numpy as np from tensorflow examples
  • 我的解决方案中有两个 Web 项目,要部署哪一个

    我有一个像这样结构的解决方案 Proj Soln Proj Api csproj Proj Web csproj 我已使用 bitbucket org 配置了 microsoft azure 当我通过 git 提交到 bitbucket 时
  • Linux Mint 19.2 上的 Docker 安装不起作用 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 刚刚安装了一个新的 Linux mint 19 2 我需要 docker 所以我去了 docker 文档并遵循了该过程 https doc
  • 将值传递给捆绑的 React JS 文件?

    我想知道是否可以将参数传递给反应入口点 我的入口点如下所示 module exports entry js components Application js output path dist filename bundle js 我的应用
  • 如何在turbo c++ 16位编译器中创建项目

    我想创建一个项目文件 Turbo C 并链接该项目中的文件 虽然我已经尝试过 但我发现只有一个选项可以打开项目 没有选项可以创建新项目 那么如何做到这一点 基本上 你想做的是 开放项目 在那里 您输入项目名称 它必须以 PRJ 当你open
  • Angular2 中的事件委托

    我正在 ng2 中开发一个应用程序 但我正在努力解决一些问题 我正在构建一个日历 您可以在其中选择日期范围 我需要对此做出反应click mouseenter mouseleave日细胞上的事件 所以我有一个像这样的代码 简化的 日历 组件
  • 如何更改 SonataAdmin 中的“奏鸣曲项目”链接?

    我的 SonataAdminBundle 有问题 我找不到如何更改左侧板上的 奏鸣曲项目 链接 我有 我的标题 一张图片 下面有 奏鸣曲项目 我怎样才能改变这个 In order to customize the content of th
  • crypto.pbkdf2 导出 IV 和密钥到 crypto.createCipheriv 的正确设置是什么?

    在 Node js 的应用程序中 我使用加密模块 https nodejs org api crypto html用于对称加密 解密 我正在使用 AES 256 CTR 我最初假设加密 createCipher https nodejs o
  • 应用程序 onCreate 在 Activity onCreate 之后调用(未调用)

    在崩溃日志中 我发现了非常奇怪的应用程序错误 该错误发生在 Android 7 0 8 0 上 对于一些少量用户来说 但非常频繁 我无法重现该问题 这里的代码反映了当前应用程序的状态 我有一个对我的应用程序类的静态引用 public cla
  • 防止delayed_job后台作业在单个服务器上消耗过多的CPU

    我的 Rails 应用程序有许多任务被卸载到后台进程中 例如调整图像大小和上传到 S3 我在用着延迟作业 http github com collectiveidea delayed job tree master来管理这些流程 这些过程
  • Java:观察目录以移动大文件

    我一直在编写一个程序来监视目录 当在其中创建文件时 它会更改名称并将它们移动到新目录 在我的第一个实现中 我使用了 Java 的 Watch Service API 当我测试 1kb 文件时 它运行良好 出现的问题是 实际上创建的文件大小在
  • 如何在新行而不是主行中呈现 CKEditor5 工具栏按钮?

    我从源代码将 CKEditor5 集成到我的 create React 应用程序中 现在 我想在工具栏的新行中渲染溢出的按钮 但它们显示在单独的菜单项中 如何在新行而不是主行中显示按钮 这是我的配置 ClassicEditor defaul
  • 无法在 git 中复制和粘贴 - macos

    有谁知道如何使用 macOS 复制并粘贴 git 吗 我无法在左下窗格中选择 突出显示和复制其中的文本 更改 Thanks 我可以通过按以下命令从 gitk 复制 fn C
  • 如何从 TreeNode.FullPath 数据获取实际的树节点?

    我想存储 TreeNode FullPath 中的一些数据 然后我想重新扩展到目前为止的所有内容 有简单的方法吗 多谢 您可以将其编写为扩展方法TreeNodeCollection using System using System Lin