• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C#
  • 标签: TreeView  

资源简介

C#TreeView将左侧数据添加到右侧树视图

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WinformModel
{
    public partial class TreeViewForm : Form
    {
        public TreeViewForm()
        {
            InitializeComponent();
            tvLeft.CheckBoxes = true;
            tvLeft.AfterCheck += new TreeViewEventHandler(tvLeft_AfterCheck);
        }

        void tvLeft_AfterCheck(object sender TreeViewEventArgs e)
        {
            if (e.Action != TreeViewAction.Unknown)
            {
                CheckAllChildNodes(e.Node e.Node.Checked);
                //选中父节点 
                bool bol = true;
                if (e.Node.Parent != null)
                {
                    for (int i = 0; i < e.Node.Parent.Nodes.Count; i++)
                    {
                        if (!e.Node.Parent.Nodes[i].Checked)
                            bol = false;
                    }
                    e.Node.Parent.Checked = bol;
                }
            }
        }
        #region  选中子节点
        public void CheckAllChildNodes(TreeNode treeNode bool nodeChecked)
        {
            foreach (TreeNode node in treeNode.Nodes)
            {
                node.Checked = nodeChecked;
                if (node.Nodes.Count > 0)
                {
                    this.CheckAllChildNodes(node nodeChecked);
                }
            }
        }
        #endregion
        private void TreeViewForm_Load(object sender EventArgs e)
        {
            // 加载默认数据
            List list = new List() { 
             new TreeNodeClass(1“父节点1“0)
             new TreeNodeClass(2“节点1-1“1)
             new TreeNodeClass(3“节点1-2“1)
             new TreeNodeClass(4“父节点2“0)
             new TreeNodeClass(5“节点2-1“4)
             new TreeNodeClass(6“节点2-2“4)
            };
            IEnumerable parentList = list.Where(p => p.parentId == 0);
            tvLeft.Nodes.Clear();

            foreach (TreeNodeClass pNode in parentList)
            {
                TreeNode parentNode = new TreeNode();
                parentNode.Text = pNode.name;
                IEnumerable childrenList = list.Where(p => p.parentId == pNode.id);
                foreach (TreeNodeClass cNode in childrenList)
                {
                    TreeNode childrenNode = new TreeNode();
                    childrenNode.Text = cNode.name;
                    parentNode.Nodes.Add(childrenNode);
                }
                this.tvLeft.Nodes.Add(parentNode);
            }

        }
        /// 
        /// 递归获取选择Node
        /// 

        /// 
        /// 
        public static List GetCheckedNode(TreeNodeCollection tnc)
        {
      

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5817  2014-07-14 14:33  TreeViewForm.resx

     文件       4630  2014-07-14 14:54  TreeViewForm.cs

     文件       3061  2014-07-14 14:33  TreeViewForm.Designer.cs

----------- ---------  ---------- -----  ----

                13508                    3


评论

共有 条评论