C#-树视图的实现以及TreeView属性---ShinePans

树视图TreeView 属性及方法

属性 说明
Nodes 获取分配给树视图控件的树节点集合
PathSeparator 获取或设置树节点路径所使用的分隔符串
SelesctedNode 获取或设置当树节点选定时所使用的图像列表索引值
ShowNodeToolTips 获取或设置一个值,用以指示树图中的树节点是否经过排序
VisibleCount 获取树视图控件黄总完全可见的树节点数目
CollapseAll 折叠所有的树节点
ExpandAll 展开所有的树节点
GetNodeAt 检索位于指定位置的 树节点
GetNodeCount 检索分配给树视图控件的树节点数
............................ ..................................................................................................................................................................

事件 说明
AfterCheck 在选中树节点复选框后 发生
AfterCollapse 在选中树节点复选框后发生
AfterExpand 在展开树节点后发生
AfterSelect 在选定树节点后发生
NodeMouseClick 当用户使用鼠标单击TreeView 时发生
NodeMouseDoubleClick 当用户使用鼠标双击TreeNode 时发生

Form1.cs

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 TreeViewTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            treeView1.ContextMenuStrip=contextMenuStrip1; //设置树空间的快捷菜单
            TreeNode TopNode=treeView1.Nodes.Add("博主"); //建立第一个顶级节点
            //建立4个基础节点 ,分别表示 4个大的分支
            TreeNode ParentNode1=new TreeNode("家人");
            TreeNode ParentNode2=new TreeNode("朋友");
            TreeNode ParentNode3=new TreeNode("老师");
            TreeNode ParentNode4=new TreeNode("同学");
            //将四个基础节点添加到顶级节点中
            TopNode.Nodes.Add(ParentNode1);
            TopNode.Nodes.Add(ParentNode2);
            TopNode.Nodes.Add(ParentNode3);
            TopNode.Nodes.Add(ParentNode4);
            //建立6个子节点,分别表示6个小的分支
            TreeNode ChildNode1=new TreeNode("ShinePans");
            TreeNode ChildNode2=new TreeNode("爸爸");
            TreeNode ChildNode3=new TreeNode("妈妈");
            TreeNode ChildNode4=new TreeNode("xuzhengmao");
            TreeNode ChildNode5=new TreeNode("秦明");
            TreeNode ChildNode6=new TreeNode("zhangyihui");
            TreeNode ChildNode7=new TreeNode("xuzhengmao");
            TreeNode ChildNode8=new TreeNode("zhangyihui");
            ParentNode1.Nodes.Add(ChildNode1);
            ParentNode1.Nodes.Add(ChildNode2);
            ParentNode1.Nodes.Add(ChildNode3);
            ParentNode4.Nodes.Add(ChildNode4);
            ParentNode3.Nodes.Add(ChildNode5);
            ParentNode4.Nodes.Add(ChildNode6);
            ParentNode2.Nodes.Add(ChildNode7);
            ParentNode2.Nodes.Add(ChildNode8);
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            label1.Text="选择的部门:"+e.Node.Text;
        }

        private void 全部展开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            treeView1.ExpandAll();
        }

        private void 全部折叠ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            treeView1.CollapseAll();
        }

        }

}

program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace TreeViewTest
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            //树视图

        }
    }
}

Form1设计

namespace TreeViewTest
{
    partial class Form1
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.treeView1 = new System.Windows.Forms.TreeView();
            this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
            this.label1 = new System.Windows.Forms.Label();
            this.全部展开ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.全部折叠ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.contextMenuStrip1.SuspendLayout();
            this.SuspendLayout();
            //
            // treeView1
            //
            this.treeView1.Location = new System.Drawing.Point(5, 7);
            this.treeView1.Name = "treeView1";
            this.treeView1.Size = new System.Drawing.Size(247, 294);
            this.treeView1.TabIndex = 0;
            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
            //
            // contextMenuStrip1
            //
            this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.全部展开ToolStripMenuItem,
            this.全部折叠ToolStripMenuItem});
            this.contextMenuStrip1.Name = "contextMenuStrip1";
            this.contextMenuStrip1.Size = new System.Drawing.Size(153, 70);
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(11, 320);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(0, 12);
            this.label1.TabIndex = 2;
            //
            // 全部展开ToolStripMenuItem
            //
            this.全部展开ToolStripMenuItem.Name = "全部展开ToolStripMenuItem";
            this.全部展开ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
            this.全部展开ToolStripMenuItem.Text = "全部展开";
            this.全部展开ToolStripMenuItem.Click += new System.EventHandler(this.全部展开ToolStripMenuItem_Click);
            //
            // 全部折叠ToolStripMenuItem
            //
            this.全部折叠ToolStripMenuItem.Name = "全部折叠ToolStripMenuItem";
            this.全部折叠ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
            this.全部折叠ToolStripMenuItem.Text = "全部折叠";
            this.全部折叠ToolStripMenuItem.Click += new System.EventHandler(this.全部折叠ToolStripMenuItem_Click);
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(260, 361);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.treeView1);
            this.Name = "Form1";
            this.Text = "树视图";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.contextMenuStrip1.ResumeLayout(false);
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TreeView treeView1;
        private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.ToolStripMenuItem 全部展开ToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem 全部折叠ToolStripMenuItem;

    }
}

C#-树视图的实现以及TreeView属性---ShinePans

时间: 2024-09-29 10:29:38

C#-树视图的实现以及TreeView属性---ShinePans的相关文章

SharePoint 树视图自定义

树视图是提供的列表. 库和当前网站的子网站的分层视图的导航选项.树视图显示大多数网页的网站中,快速启动栏下方的一侧.默认情况下,禁用树视图. 如果您的网站具有复杂的层次结构,使用树视图,网站用户可以更方便地在网站层次结构中的不同内容之间(例如,当前网站中的库和子网站中的列表之间)导航.下面是树视图的一个示例. 在实际使用中,在某个文档库只想看到文档库当前的树视图,其他视图不需要该如何操作呢? 1.首先打开SharePoint Designer网站母版页,找到树视图ID为TreeViewNavig

使用UITableView实现树视图

本文的目的,是研究有没有可能在一个TableView中呈现树形数据,尤其是树形菜单.众多的网络资料都强调,Cocoa框架不支持树形视图,苹果推荐程序员使用TableViewController+NavigationController的方式展现树形菜单.如果2-3层的树形数据还可以忍受,万一层次稍多一点,必须反复的用导航按钮在视图中转来转去,显然并不太方便.何况笔者认为2-3层的导航也要切换多次视图,也是一种浪费. 一.搭建基本框架 1 二.实现树节点 2 三.实现树 3 四.实现TreeVie

C#-树视图TreeView---ShinePans

1.pyquery简介 python中的pyquery模块语法与jquery相近,可用来解析HTML文件.官方文档地址:https://pythonhosted.org/pyquery/ .通过HTML中的标签.id.给定的索引等来获取元素,使得解析HTML文件极为方便. 2.实例 2.1 爬取豆瓣电影页面中主演 右键chrome中的审查元素,观察到主演的标签为<a href="/celebrity/1005773/" rel="v:starring">

SharePoint 创建站点地图树视图及格式枚举截图

SharePoint 创建站点地图树视图及格式枚举截图 SharePoint首页隐藏掉左侧导航以后,如果要以树视图呈现网站地图也很简单. 只需要复制v4.master,粘贴出v4_copy(1).master,签出,编辑.直接修改v4.master母版页是不明智的. 在PlaceHolderLeftNavBar中插入树视图.点击小三角,在选择数据源下拉列表新建数据源. 选中站点地图,指定ID为SiteMapDataSource,点击确定. F12在浏览器中预览. 回到SPD,点击树视图小三角,点

学习IOS开问题篇--视图的模型控件属性写在私有分类中的原因

在说原型模式之前,我们先来看java里面的深复制和浅复制: 1. 浅复制:被复制的对象的所有变量都持有和原来对象的变量相同的值,而所有的对其他对象的引用都指向原来的对象. 2. 深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他变量的对象.那些引用其他对象的变量将指向被复制过来的新对象,而不是原来那些被引用的对象.深复制需要把要复制的对象的所有引用都复制一遍. 这两者的区别就是关于引用对象的处理,浅复制是不考虑引用对象,而深复制需要考虑引用对象的问题. 对java中的clon

使用表达式树和反射来访问对象属性的性能比较

今天在工作上遇到这么个需求:需要获取对象上所有属性的值,但并事先并不知道对象的类型. 我的第一反应就是使用反射,但是这个操作会进行多次,大量的反射肯定会有性能影响.虽然对我这个项目无关紧要,但我还是选择了另外一种解决方案:构建表达式树,再生成委托,然后将委托缓存在字典里.代码如下: 首先构建表达式树(类似这种形式:'(a) => a.xx'),并生成委托: private static Delegate BuildDynamicGetPropertyValueDelegate(PropertyI

treeview属性 Autoexpand 、HotTrack、readOnly、ShowButtons、

1,自动展开(Autoexpand) = Ture.但是有时输入一个字,后面就会自动接著输入完成,下拉式选单中也会自动移到开移的位置. 2,HotTrack"的中文名称为"热点跟踪",英文名称为"HotTrack",类型为"逻辑型(bool)". 指定当鼠标移动到单元上时是否显示热点状态. 作者: 挥剑斩浮云 3,readOnly Boolean 是否只读 4,ShowButtons:是否显示+和-按钮 5, ShowLines:是否显

依据数据集 进行 树 的构造(treeview & dataset) 方法一

type PDepData=^DepData; DepData = record ID: Integer; DepID: string; DepName: string; end; procedure FreeTV(tv: TTreeview); var i: Integer; begin for i := 0 to tv.Items.Count - 1 do begin dispose(tv.Items[i].Data); end; tv.Items.Clear; end; procedure

SAP CRM 树状视图(TREE VIEW)

树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view)那种专门的树视图类型.我们可以认为树视图是表视图的一种特例.没有可以用于创建树视图的向导.需要按以下特定的步骤手动改造已存在的视图. 首先,这个看起来挺难的,但是你做的次数越多,就会越容易理解它.在本文,我将创建一个如下模样的树视图. 如你所见,它有两级结构.第一级展示LEAD ID,下一级展示客户