代码改变世界

winform中treeView使用通用类

  观海看云  阅读(431)  评论(0编辑  收藏  举报
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace educationWindows.commonCode
{
    public class treeMethod
    {
        /// <summary>
        /// 从数据库查询添加新的树节点到指定的父接点上
        /// </summary>
        /// <param name="parenTn">父接点</param>
        /// <param name="newTn">新节点</param>
        /// <param name="nodeText">新节点显示文本</param>
        /// <param name="nodeName">新接点唯一值,数据表中的ID</param>
        public static void AddTreeNode(TreeNode parenTn, TreeNode newTn, string nodeText, string nodeName)
        {
            newTn = new TreeNode(nodeText);
            newTn.Name = nodeName;
            parenTn.Nodes.Add(newTn);
        }
        /// <summary>
        /// 添加数据到数据库的同时把数据添加到指定的树节点
        /// </summary>
        /// <param name="treeview">treeview组件</param>
        /// <param name="parenTn">父节点</param>
        /// <param name="newTn">新节点</param>
        /// <param name="nodeText">新节点显示文本</param>
        /// <param name="id">新接点唯一值,数据表中的ID</param>
        /// <param name="selectName">所选数据的ID,用于查询指定的树节点</param>
        public static void InsertTreeNode(TreeView treeview, TreeNode parenTn, TreeNode newTn, string nodeText, int id, string selectName)
        {
            int ok = 0;  //0代表还没找到节点,1为找到节点
            TreeNode selectedNode;
            newTn = new TreeNode(nodeText);
            newTn.Name = id.ToString();
            if (selectName != "")
            {
                for (int i = 0; i < treeview.Nodes.Count; i++)
                {
                    parenTn = treeview.Nodes;
                    for (int j = 0; j < parenTn.Nodes.Count; j++)
                    {
                        if (parenTn.Nodes[j].Name == selectName)
                        {
                            selectedNode = parenTn.Nodes[j];
                            selectedNode.Nodes.Add(newTn);
                            ok = 1;
                            break;
                        }
                    }
                    if (ok == 1)
                    {
                        break;
                    }
                }
            }
            else
            {
                treeview.Nodes.Add(newTn);
            }
        }
        public static void InsertTreeNode(TreeView treeview,TreeNode parenTn, string nodeText, int id, string selectName)
        {
            int ok = 0;  //0代表还没找到节点,1为找到节点
            TreeNode selectedNode;
            parenTn = new TreeNode(nodeText);
            parenTn.Name = id.ToString();
            if (selectName != "")
            {
                for (int j = 0; j < treeview.Nodes.Count; j++)
                {
                    if (treeview.Nodes[j].Name == selectName)
                    {
                        selectedNode = treeview.Nodes[j];
                        selectedNode.Nodes.Add(parenTn);
                        ok = 1;
                        break;
                    }
                }
            }
        }
        /// <summary>
        /// 添加数据到数据库的同时把数据添加到指定的树节点
        /// </summary>
        /// <param name="parenTn">父节点</param>
        /// <param name="newTn">新节点</param>
        /// <param name="nodeText">新节点显示文本</param>
        /// <param name="id">新接点唯一值,数据表中的ID</param>
        /// <param name="selectName">所选数据的ID,用于查询指定的树节点</param>
        public static void DirectInsertTreeNode(TreeNode parenTn, TreeNode newTn, string nodeText, int id)
        {
            newTn = new TreeNode(nodeText);
            newTn.Name = id.ToString();
            parenTn.Nodes.Add(newTn);
        }
    }
}
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示