C# 中带有复选框的 TreeView

2024-06-28

我在 C# 中有一个带有复选框的树视图,我希望当用户检查一个节点时,自动检查以下级别上的所有节点。 有谁知道如何做到这一点,而无需在每次用户检查某个节点时在所有树上运行递归功能?

Thanks

//该函数返回树视图。

   public TreeView GetTreeView()
    {

        getSubject();
        // fill the treeview with all subjects.
        foreach (Subject subject in subjects)
        {
            //for each root subject fill all the his children.
            if (subject.subjestId == subject.parentSubject)
            {
                TreeNode node = new TreeNode(subject.subjectString, subject.subjestId, subject.subjestId);
                addChild(node, subject.subjestId);
                tv.Nodes.Add(node);
            }
        }
        return tv;
    }
   // for each subject return sub subjects.
   private void addChild(TreeNode node, int parentId)
    {
        foreach (Subject subject in subjects)
        {
            if (subject.parentSubject == parentId && subject.parentSubject != subject.subjestId)
            {
                TreeNode childNode = new TreeNode(subject.subjectString, subject.subjestId, subject.subjestId);
                addChild(childNode, subject.subjestId);
                node.Nodes.Add(childNode);
            }
        }
    }

递归。像这样:

    bool busy = false;

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) {
        if (busy) return;
        busy = true;
        try {
            checkNodes(e.Node, e.Node.Checked);
        }
        finally {
            busy = false;
        }
    }

    private void checkNodes(TreeNode node, bool check) {
        foreach (TreeNode child in node.Nodes) {
            child.Checked = check;
            checkNodes(child, check);
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中带有复选框的 TreeView 的相关文章

  • 预加载整个模型以估计 Tensorflow Serving 的内存消耗

    当执行预测时 Tensorflow Serving 延迟初始化模型 DAG 中的节点 这使得很难估计保存整个模型所需的内存 RAM 是否有一种标准方法可以强制 Tensorflow Serving 将模型完全初始化 加载到内存中 您可以使用
  • 将 Google 云端硬盘访问权限委派给服务帐户失败

    我参与构建了一个内部使用的应用程序 用户可以通过该应用程序上传文件 并将其存储在 Google Drive 中 由于建议不要使用服务帐户作为文件所有者 因此我希望代表公司系统管理员有权访问的指定用户帐户上传应用程序 我已经创建了该应用程序以
  • 如何在 Multiline 属性设置为 true 的文本框中将空格替换为换行符?

    假设我有这个字符串 string str The quick brown fox jumps over the lazy dog 如何替换或忽略字符串中的空格并在多行文本框中输入每个单词 预期输出 The quick brown fox j
  • 在 C 中使用模板函数的最短示例?

    我如何处理函数echo tpl可以采取1类型参数int or string 然后打印出来 C没有模板 我认为你能做的最好的事情就是使用联合或让函数具有不同的名称 后一种具有不同名称的方法是准标准方法 例如fabs fabsf fabsl a
  • 什么是合适的 NHibernate / Iesi.Collections.Generic.ISet 替代品?

    在最新版本的 Iesi Collections 中缺少 Iesi Collections Generic ISet 似乎有三种选择 链接哈希集 只读集 同步集 Iesi Collections Generic ReadOnlySet 似乎最
  • 为什么要在 C 和 C++ 项目中创建 include/ 目录?

    当我处理我的个人 C 和 C 项目时 我通常把file h and file cpp在同一目录中 然后file cpp可以参考file h with a include file h 指示 然而 通常会发现库和其他类型的项目 如 linux
  • StreamReader 的默认值是多少?

    我需要使用这个构造函数public StreamReader Stream stream Encoding encoding bool detectEncodingFromByteOrderMarks int bufferSize bool
  • 在 UserControl C# .NET 中添加/停靠控件

    我正在编写一个 UserControl 它以编程方式添加子控件 目前我正在添加新的控件 如下所示 this Controls Add new Control Height 16 Dock DockStyle Top 我遇到的问题是新控件添加
  • 如何为 IAsyncOperation 指定回调方法

    是否可以指定一个方法完成后调用async手术 平台 C Windows Phone 8 我需要实现非阻塞方法来异步发送UDP数据包 他们有我的方法 onWriteComplete int errorCode 操作完成时回调 这是我尝试过的
  • 使用自定义对象的动态列表并且无法动态更改dataGrid的单元格属性

    我刚开始在 Stack 上发帖 我已经搜索了很长一段时间来解决与我类似的问题 我试图根据对象的布尔值动态地将 WinForms DataGridView 中的复选框从非只读更改为只读 它在调试模式下显示更改已经发生 但是一旦完全运行 应该只
  • “#include ”导致“错误:asm/io.h:没有这样的文件或目录”

    我正在使用 gentoo 并尝试编译一个程序来控制并行端口上的位 它的顶部附近有这一行 include
  • 开始学习 C# 的最佳方式是什么?

    我对 vb 6 有一点编程经验 而 vb net 则不多 请告诉我成为专家 C 程序员的最佳方法 我知道这需要很长时间 想想你如何学习人类语言 阅读 写作 口语和听力 阅读代码 阅读文章 阅读示例 当您更有经验时 请查看您使用的一些项目的源
  • 对双向链表进行排序 C++

    尝试通过遍历列表的循环来完成此操作 在循环中 我将头节点输入到我定义的排序函数中 然后使用 strcmp 来确定节点中的哪个名称是否应该排在前面 它不起作用 因为写得太早了 我通过一次沿着列表一个节点进行线性比较 而不是回去查看第一个节点是
  • 如何使用 SonarQube 的 C# 插件设置 FxCop 安装路径

    我正在尝试使用 SonarQube C 插件分析 NET C 项目 从C Plugin 3 0开始 即使sonar project properties中的 sonar fxcop mode skip FxCop也会自动执行 所以我将FxC
  • Doxygen 支持 C++11 模板别名(“using”语法)吗?

    我正在使用 doxygen 1 7 1 为一些 C 11 代码生成文档 它似乎忽略了我的模板别名 为了清楚起见 下面是模板别名的示例 template
  • 在 QML 中使用 C++ 枚举作为字符串

    我想做的是在 C 中使用以下枚举 class MyClass public QQuickItem Q OBJECT Q PROPERTY MyEnum enumValue READ getEnumValue public enum MyEn
  • 如何隐藏鼠标光标?

    我想问是否有人可以为我提供一个 C 代码 在其中我可以在按下特定键时隐藏 显示鼠标指针 我发现一些只为 TURBO C 编写的代码 它们都不能使用 dev c 甚至 Visual c 编译和运行 我尝试运行在 Dev C 中找到的代码 但我
  • Xamarin - iOS 地图上的多个多边形

    我目前正在关注this https developer xamarin com guides xamarin forms application fundamentals custom renderer map polygon map ov
  • 在 Angular 6 和 ASP.net 中启用 CORS

    我正在尝试从 Angular 6 应用程序向发送电子邮件的 API 发送 POST 请求 我用邮递员测试了该请求并且它有效 但是当我在 Angular 应用程序中执行 POST 请求时 我的控制台中出现错误 我在 Angular 应用程序中
  • C++ 中的 golang 风格“延迟”[重复]

    这个问题在这里已经有答案了 我正在阅读有关 go 语言的defer http blog golang org defer panic and recover陈述 它允许您指定函数结束时要执行的操作 例如 如果您有一个文件指针或资源 则只需指

随机推荐

  • Delphi 使用 标记将 TXMLData 包装在 SOAP 请求中

    我使用 TXMLData 发送 XML Delphi 在请求中添加一个标签 我的代码如下 RequestData TXMLData Create RequestData LoadFromXML
  • 使用 contenteditable div 时隐藏移动设备上的软键盘

    我正在使用 contenteditable div 来创建由移动设备查看的页面 以获取某些内容的输入 我希望当用户按下 Enter 时隐藏软键盘 而不是在 div 中按 Enter 的正常操作 我第一次尝试让它工作看起来像这样 if eve
  • UTF-16-LE 文件的 Python 字符串替换

    Python 2 6 使用 Python string replace 似乎不适用于 UTF 16 LE 文件 我想到了2种方法 找到一个可以处理 Unicode 字符串操作的 Python 模块 将目标 Unicode 文件转换为 ASC
  • java 9模块的命名约定[重复]

    这个问题在这里已经有答案了 java 9 模块的命名约定是什么 假设我的包名称是me jasonyeo awesome project 每当我创建一个module info javaIDEA 中的文件 它会建议我命名它awesome pro
  • 使用 loc 命令替换值

    有一个数据框 我需要replace值高于 512 时为 263 因此 我首先使用此代码行来过滤索引 df loc df Fare gt 512 Fare astype int 这是结果 258 512 679 512 737 512 123
  • 将固定长度的数据从 std::istream 复制到字符串

    我想将固定长度的数据从 std istream 复制到字符串 std istream operator gt gt std istream is LogMsg msg read in 4 bytes a uint32 t that desc
  • 使用 cmd 和 R 配置 databricks

    我正在尝试使用 databricks cli 并调用 databricks 配置 这就是我从 cmd 执行此操作的方法 somepath gt databricks configure token Databricks Host shoul
  • 核心数据:是否可以在分组中使用自定义函数

    在 Objective C 中制作 NSFetchRequest 时 是否可以按组使用自定义函数 strftime sql语句在sqlite中完全有效 select date count from note group by strftim
  • 捕获 javax.net.debug 到文件

    我需要将创建的 javax net debug all 输出保存到文件中 我正在使用 log4j 并尝试创建一个日志代理 如下面的代码示例所示 但是 它没有获取信息 我不确定 javax net debug 被打印到哪里 我尝试以这种方式捕
  • docker-compose pull 结果为 x509:证书由未知机构签名

    尝试从 dockerhub 提取 elastcisearch 图像时遇到以下错误 docker compose pull Pulling elasticsearch elasticsearch 2 2 0 Pulling repositor
  • 如何正确解决“弱接收器在 ARC 模式下可能会意外地为空”的问题

    我在 xcode 中打开了一个新标志 并收到警告 弱接收器在 ARC 模式下可能不可预测地为空 这让我很困惑 因为它当然可能为零 我一周前问过这个问题 但没有收到任何答复 但格雷格 帕克在邮件列表上回答了它 所以我重新发布答案 我们添加此警
  • 我删除了 Xcode 中的本地化,然后无法添加任何本地化

    我错误地从项目信息中删除了项目的本地化信息 故事板和相关语言都被删除 我从以前的文件中取回了故事板 但是当我想添加新的本地化时 会弹出一个窗口并要求我 选择文件和参考语言来创建英语本地化 并且根本没有资源文件 如何添加回本地化内容 添加回本
  • 在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

    如何使用 VBA 保存并重新应用当前过滤器 在 Excel 2007 VBA 中 我试图 保存用户在当前工作表上拥有的任何过滤器 清除过滤器 做东西 重新应用保存的过滤器 看一下捕获自动筛选状态 http www mrexcel com f
  • wikidata 获取带有项目标签和值的所有属性

    我的问题是如何从 wikidata 最好是通过 SPARQL 提取在网页上呈现的所有属性及其各自的标签 以Google https www wikidata org wiki Q95维基数据上的条目 对于属性 P414 证券交易所 或 P1
  • 将 VB 转换为 C# - My.Application.Info.DirectoryPath

    以下 VB VB NET VisualBasic 语句的最佳 C csharp 等效项是什么 My Application Info DirectoryPath My Computer Clipboard My Computer Audio
  • 使用图像映射生成器的一个好的替代方案是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一张大图像 我想让图像的某些部分可单击 我还想指定可点击区域的形状 方形 圆形 自定义 在不依赖 Javascript 的情况下 如何
  • Android 上原始文件夹和 SD 卡之间的 MediaPlayer 问题

    我正在制作一个用于使用搜索栏播放歌曲的应用程序 如果我从原始文件夹播放 它可以工作 但如果我从 SD 卡播放歌曲 它会显示空指针异常 private MediaPlayer mediaPlayer mediaPlayer MediaPlay
  • 为什么要为 RESTful API 创建单独的应用程序?

    Yii 2 的指南中说 虽然不是必需的 但建议您开发 RESTful API 作为一个单独的应用程序 与您的 Web 前端不同 后端更方便维护 Source RESTful Web 服务 快速入门 http www yiiframework
  • 执行源代码时忽略导入错误

    我有一个应用程序 它读取 python 中的测试脚本并将其通过网络发送以在远程 python 实例上执行 由于控制程序不需要运行这些脚本 我不想将测试脚本使用的所有模块安装在控制器的 python 环境中 然而 控制器确实需要来自测试脚本的
  • C# 中带有复选框的 TreeView

    我在 C 中有一个带有复选框的树视图 我希望当用户检查一个节点时 自动检查以下级别上的所有节点 有谁知道如何做到这一点 而无需在每次用户检查某个节点时在所有树上运行递归功能 Thanks 该函数返回树视图 public TreeView G