控件treeview使用
一:实现功能,获得选中节点,在选中节点下添加节点,折叠,展开,删除,得到选中节点下checked项,选中根节点其下节点也选中,图标。上图

二:相关代码
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 TreeView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 事件:获得选中节点的文本
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_nodeText_Click(object sender, EventArgs e)
{
treeView1.HideSelection = false;//将选中的节点显示为选中的状态,默认是隐藏显示状态
MessageBox.Show(treeView1.SelectedNode.Text);//nodes是节点的集合,每个分支是一个节点 }
/// <summary>
/// 事件:添加节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_addNode_Click(object sender, EventArgs e)
{
//treeView1.Nodes.Add("红马車");//在根节点添加
//MessageBox.Show(treeView1.Nodes.Count.ToString());//得到根节点的数量
//treeView1.Nodes[0].Nodes[0].Nodes.Add("红马車");//在根节点的第0根节点下的第0子节点下添加
//treeView1.Nodes[2].Nodes.Add("红马車");//在第2根节点下添加
if (treeView1.SelectedNode != null)//是否被选中
{
treeView1.SelectedNode.Nodes.Add(tb_nodeText.Text);//在选中的子节点下添加
treeView1.ExpandAll();//自动展开所有的项
} }
/// <summary>
/// 事件:自动载入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
treeView1.HideSelection = false;//显示选中的阴影
treeView1.ExpandAll();//自动展开所有的项
treeView1.CheckBoxes = true;//显示选中框
treeView1.Nodes[].Nodes[].SelectedImageIndex = ;
treeView1.Nodes[].Nodes[].ImageIndex = ;
}
/// <summary>
/// 事件:展开全部节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_ExpandAll_Click(object sender, EventArgs e)
{
treeView1.ExpandAll(); }
/// <summary>
/// 事件:折叠全部
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_CollapseAll_Click(object sender, EventArgs e)
{
treeView1.CollapseAll(); }
/// <summary>
/// 事件:展开当前选中的同级子节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_expandNow_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null)
{
treeView1.SelectedNode.Expand();
//treeView1.SelectedNode.ExpandAll();//展开当前选中的所有的子节点
}
}
/// <summary>
/// 事件:折叠当前同级节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_CollapseNow_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null)
{
treeView1.SelectedNode.Collapse();
}
}
/// <summary>
/// 事件:删除节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_nodeDelete_Click(object sender, EventArgs e)
{
//treeView1.Nodes[0].Remove();//删除根节点的第0节点
treeView1.Nodes[].Nodes[].Remove();//第0个根节点下的第0个节点
}
/// <summary>
/// 事件:删除选中的节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_deleteSelectNode_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null)
{
treeView1.SelectedNode.Remove();
}
}
/// <summary>
/// 事件:查看选中节点选中的同级项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_showChecked_Click(object sender, EventArgs e)
{
string str = "选中了:";
if (treeView1.SelectedNode != null)
{
foreach (TreeNode tn in treeView1.SelectedNode.Nodes)
{
if (tn.Checked == true)
{
str += tn.Text;
}
}
MessageBox.Show(str);
}
}
/// <summary>
/// 事件:选中根节点该节点的子节点也选中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)//只要有选中就会触发
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = e.Node.Checked;//根节点的选中状态给子节点
}
}
}
}
控件treeview使用的更多相关文章
- WinForm控件TreeView 只部分节点显示 CheckBox
WinForm控件TreeView 只部分节点显示 CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示check ...
- WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 菜单M ...
- 【转】WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 菜单Menu的自定义样式: 右键菜单ContextMenu的自定义样式 ...
- 开发类似"音速启动"的原创工具简码"万能助手"的过程中对ztree.js与win标准控件treeview、HTMLayout树形框等优缺点的比较
在开发类似"音速启动"的桌面快捷方式管理软件简码"万能助手"的早期规划中,曾经考虑过几种树形框方案: ztree.js.win标准控件treeview.HTML ...
- 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据
原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中 ...
- [工作札记]02: .Net Winform控件TreeView最简递归绑定方法
前言:Treeview控件是我们在WinForm.WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点:同样,递归的思路在其他程序中也经常运用,包括.Net MVC等. ...
- WPF控件TreeView使用
需要多级嵌套要用TreeViewItem,而这个在大纲视图右键控件可以点出来. 代码控制嵌套Items就可以. 如果显示"(集合)",检查嵌套的是不是TreeViewItem的It ...
- 母版页 treeview控件 SiteMapPath控件 treeview数据库绑定模式
母版页就是网站中一样的部分母版页的后缀名是.Master可以把母版页当成一个页面 想让哪里是别的内容就可以 通过如下: <asp:ContentPlaceHolder ID="C ...
- 树行控件TreeView 在WinForm下 怎么实现重命名功能
public Form1() { InitializeComponent(); this.Load+=new EventHandler(Form1_Load); treeVie ...
随机推荐
- ASP.NET中如何生成图形验证码
通常生成一个图形验证码主要 有3个步骤: (1)随机产生一个长度为N的随机字符串,N的值可由开发可由开发人员自行设置.该字符串可以包含数字.字母等. (2)将随机生成的字符串创建成图片,并显示. (3 ...
- web前端开发浏览器兼容性 - 持续更新
浏览器兼容性问题又被称为网页或网站兼容性问题:不同浏览器内核及所支持的html等网页语言标准不同,不同客户端环境(如分辨率不同)造成实际显示效果未能达到预期理想效果 首先我们来看一下目前市面上常见的一 ...
- C## 输出Hello world
首先新建一个项目 然后在文件D:\C##Obj\HelloWorld\HelloWorld\Program.cs using System; using System.Collections.Gene ...
- iBatis 的简单入门
iBATIS一词来源于“internet”和“abatis”的组合,于2010年6月16号被谷歌托管,改名为MyBatis.是一个基于SQL映射支持Java和·NET的持久层框架. ibatis本是a ...
- 利用bat批量执行脚本文件
1.读取目录文件 利用bat 的for命令读取中的sql文件 for /r %%c in (0*.sql) do echo %%c %%c 相当于变量 in() 中的为循环的范围 此句的作用是显示当前 ...
- GCD介绍(二): 多核心的性能
GCD介绍(二): 多核心的性能 概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系).在低层,GCD全局dispatc ...
- SGU 138.Games of Chess
时间限制:0.25s 空间限制:4M 题目: n个朋友在一起按照下面的规则依次下棋:在第一局游戏,n个人中的两个开始下棋.在第二局,第一局胜利的人将跟其他人下棋(也可能还是输了第一局人), 在第三局第 ...
- 【BZOJ1146】【树链剖分+平衡树】网络管理Network
Description M 公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通 信网络.该网络的结构由N个 ...
- yzoi1777倒水问题的详细解法
Description - 问题描述 x.y.z三个容器,其最大容量分别是xMAX升.yMAX升.zMAX升,这里规定100>xMAX>yMAX>zMAX.一开始x是装满了水的,现在 ...
- JS生成二维码,支持中文字符
一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...