TreeView的使用

用于显示多级层次关系

每一项是一个节点,也就是一个Node,是一个TreeNode节点,Nodes是该控件节点的集合。

selectedNode用户选中的节点,如果没有选中则为null

1. 当选中后,光标离开依然是选中状态时,则应该修改HideSelection

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

namespace TreeView的使用
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(treeView1.SelectedNode.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Nodes是第一级节点的集合,在第一级节点添加,即根节点
            //treeView1.Nodes.Add()
            //在第一个根节点的下一级添加
            //treeView1.Nodes[0].Nodes.Add("aaa");

            //根据用户选择添加信息
            if(treeView1.SelectedNode != null)
            {
                treeView1.SelectedNode.Nodes.Add(textBox1.Text);
            }
            else
            {
                treeView1.Nodes.Add(textBox1.Text);
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //展开所有节点
            treeView1.ExpandAll();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            treeView1.CollapseAll();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            treeView1.ExpandAll();
        }

        private void button5_Click(object sender, EventArgs e)
        {

            treeView1.SelectedNode.Collapse();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            //当前节点的的下一级节点
            treeView1.SelectedNode.Expand();

            //当前节点的所有节点
            //treeView1.SelectedNode.ExpandAll();
        }

        private void button7_Click(object sender, EventArgs e)
        {
            treeView1.SelectedNode.Remove();
        }

        private void button8_Click(object sender, EventArgs e)
        {
            treeView1.SelectedNode.Text = textBox2.Text;
        }

        private void button9_Click(object sender, EventArgs e)
        {
            string str = "选中的节点:\n";
            foreach(TreeNode tn in treeView1.Nodes[0].Nodes[0].Nodes)
            {
                if(tn.Checked)
                    str += tn.Text+"\n";
            }

            MessageBox.Show(str);
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {

        }

        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            foreach(TreeNode tn in e.Node.Nodes)
            {
                tn.Checked = e.Node.Checked;
            }
        }
    }
}

  

时间: 2024-08-28 05:59:25

TreeView的使用的相关文章

Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Windows.h> #include <WindowsX.h> #include <CommCtrl.h> #include "resource.h" #pragma comment (lib,"comctl32.lib") BOOL InitT

WPF treeview扩展

记录一下工作中遇到的问题,以便以后忘记了可以来看. 在工作中遇到一个问题,就是要实现类型如下的界面,没有使用Telerik和Dev库.本来最开始是想使用Datagrid,但不知道怎么实现treeview,后来遍使用treeview. 前端xaml代码: <TreeView x:Name="mytreeview"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Bin

TreeView.ImageSet 属性

TreeView.ImageSet 属性 .NET Framework 2.0 注意:此属性在 .NET Framework 2.0 版中是新增的. 获取或设置用于 TreeView 控件的图像组. 命名空间:System.Web.UI.WebControls程序集:System.Web(在 system.web.dll 中) 语法 C# C++ VB public TreeViewImageSet ImageSet { get; set; } J# /** @property */ publi

ASP.NET - TreeView

设置节点图片 : Windows资源管理器左侧的树型资源结构图中,各节点都有图片连接,例如磁盘的图片.光盘的图片和文件夹的图片等,使资源的表现更加形象.IEWebControls的TreeView控件也可以为节点链接图片,这时需要利用以下3个属性关联到节点的标准状态(未展开.未选中).展开状态和选中状态. ImageUrl属性:TreeNode处于标准状态时显示的图片的地址. ExpandImageUrl属性:TreeNode处于展开状态时显示的图片的地址. SelecteImageUrl属性:

转:[Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制TreeView节点展开?

很多童鞋看了我的博客以后也去实践MVVM,但却发现Silverlight实践中的MVVM很难实现,比纯粹的CodeBehind难度大很多.首先是原来在xaml.cs的CodeBehind部分很容易控制界面逻辑,现在这部分逻辑移到ViewModel里面去了以后,就很难调用CodeBind的部分;其次是很多View和ViewModel.或者一个ViewModel多个View,他们之间如何通 很多童鞋看了我的博客以后也去实践MVVM,但却发现Silverlight实践中的MVVM很难实现,比纯粹的Co

WinForms中TreeView控件的扩展与使用

EXE文件方便大家测试   源码下载 TreeView控件非常的好用,在我的公文系统中,使用TreeView控件选择接收公文的人员,支持单选,可多选 现提取出来,方便大家使用 涉及到的知识点 1:从Xml文件中加载内容显示到TreeView控件中 <?xml version="1.0" encoding="utf-8"?> <根目录> <组 名称="校长" 用户ID="1000"> <

[WPF实用技巧]如何使WPF的TreeView节点之间有连线

示例代码:TreeViewEx.zip 原文地址:http://www.codeproject.com/Tips/673071/WPF-TreeView-with-WinForms-Style-Fomat   Introduction WPF default TreeView is very good, but many people still want it to have lines join each of its child elements, like Windows Forms T

循环递归+返回值(TreeView示例)

示例:获取TreeView的所有Node,保存到List<TreeNode>,封装到通用工具类: 方法一:使用static方法.属性---调用前清空static类型的List 1 public static List<TreeNode> allNodes = null; 2 public static void GetTreeViewAllNodes(TreeNodeCollection Nodes) 3 { 4 foreach (TreeNode node in Nodes) 5

wpf企业应用之带选项框的TreeView

wpf里面实现层次绑定主要使用HierarchicalDataTemplate,这里主要谈一谈带checkbox的treeview,具体效果见 wpf企业级开发中的几种常见业务场景. 先来看一下我的控件绑定,我这里实现的是模块权限的编辑.具体效果就是选中一个节点,后代节点.祖代节点状态都会发生相应变化,具体变化逻辑大家都懂的,描述起来很罗嗦. <TreeView Name="TreeView_Right" ItemsSource="{Binding ModuleRigh

TreeView的绑定

最近遇到了TreeView的数据库绑定问题,确实是弄了我好几天,特别是多级节点的分步绑定,最开始不分步,发现全部加载页面都卡爆了,真心让人头疼.所以放出来,给需要的朋友看看,以免大家走冤枉路. 1.只有一级节点的数据表绑定 部分代码: protected void treeviewbind() { string sqlstr=ConfigurationManager.AppSettings["constr"]; SqlConnection con = new SqlConnection