主要内容
树形图控件添加根节点、添加子节点、删除选定节点
树形图删除选定节点
读取SQL Server数据(模拟数据库读取)
环境
C# 语言
.Net Framework 4.5.2 框架
关键语言
添加根节点
treeView名称.Nodes.Add(“要添加的根节点值”);
TreeView 控件的基本用法
为了演示相关用法,属性方法。通过VS2010创建一个WinForm项目,窗体如下所示。
添加根节点
/// <summary> /// 添加根节点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_AddNodes_Click(object sender, EventArgs e) { //判断输入数值非空 if (string.IsNullOrEmpty(txt_Name.Text.Trim())) { MessageBox.Show("要添加的节点名称不能为空!"); return; } //添加节点 treeView_main.Nodes.Add(txt_Name.Text.Trim()); txt_Name.Text = ""; }
添加子节点
/// <summary> /// 添加子节点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_SonNodes_Click(object sender, EventArgs e) { //判断节点非空 if (string.IsNullOrEmpty(txt_Name.Text.Trim())) { MessageBox.Show("要添加的节点名称不能为空!"); return; } if (treeView_main.SelectedNode == null) { MessageBox.Show("请选择要添加的节点!"); return; } else { treeView_main.SelectedNode.Nodes.Add(txt_Name.Text.Trim()); txt_Name.Text = ""; } }
删除选中的节点
/// <summary> /// 删除选定结点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_NodeDelete_Click(object sender, EventArgs e) { if (treeView_main.SelectedNode == null) { MessageBox.Show("请选择要删除的节点!"); return; } else { treeView_main.SelectedNode.Remove(); } } }
树形图给节点添加图标
初始化Demo值
为了验证节点,在窗口初始化事件添加方法loadTreeView()用于测试数据,测试数据代码如下:
/// <summary> /// 初始化TreeView /// </summary> private void loadTreeView() { for (int i = 0; i < 5; i ++) { TreeNode treeNode_1 = new TreeNode(); //添加根节点 treeNode_1.Text = "根节点" + i; treeView_main.Nodes.Add(treeNode_1); //添加子节点 for (int j = 0; j < 5; j ++) //添加二级节点 { TreeNode treeNode_2 = new TreeNode(); treeNode_2.Text = i + ":二级节点" + j; treeNode_1.Nodes.Add(treeNode_2); } } }
运行后执行显示如下:
绑定ImageList控件
页面插入ImageList控件(更改合适的名字)。属性点击Images集合,在这里编辑图标排序。
设置不同图标
方法1:直接在设计页面修改树形图属性。
绑定ImageList、ImageIndex/imagekey 、SelectedImageIndex/SelectedImageKey、checkBoxs、StateImageList。
如图,默认状态下,图标为 ,选中状态下,图标为 。复选框未选中时图标为 ,目标选中时,图标为。
对应的页面的*.Designer.cs代码(以ImageIndex和SelectedImageIndex为例):
this.treeView_main.CheckBoxes = true; //是否复选框 this.treeView_main.Dock = System.Windows.Forms.DockStyle.Fill; this.treeView_main.ImageIndex = 0; //默认图标索引 this.treeView_main.ImageList = this.imageList1; //默认图标绑定图片列控件 this.treeView_main.Location = new System.Drawing.Point(0, 0); this.treeView_main.Name = "treeView_main"; this.treeView_main.SelectedImageIndex = 1; //选中图标对应索引 this.treeView_main.Size = new System.Drawing.Size(200, 450); this.treeView_main.StateImageList = this.imageList_State; //自定义状态(复选框是否选中)状态绑定图片控件,(默认第0张,选中第1张) this.treeView_main.TabIndex = 0;
对应的页面的*.Designer.cs代码(以ImageKey和SelectedImageKey为例):
this.treeView_main.CheckBoxes = true; //是否复选框 this.treeView_main.Dock = System.Windows.Forms.DockStyle.Fill; this.treeView_main.ImageKey = "tree_add.png"; //默认图标名称 this.treeView_main.ImageList = this.imageList1; //默认图标绑定图片列控件 this.treeView_main.Location = new System.Drawing.Point(0, 0); this.treeView_main.Name = "treeView_main"; this.treeView_main.SelectedImageKey = "tree_plus.png"; //选中图标名称 this.treeView_main.Size = new System.Drawing.Size(200, 450); this.treeView_main.StateImageList = this.imageList_State; //自定义状态(复选框是否选中)状态绑定图片控件,(默认第0张,选中第1张) this.treeView_main.TabIndex = 0;
方法2:修改后台代码
后台代码如下:
/// <summary> /// 初始化加载方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { treeView_main.ImageList = imageList1; //绑定图片列控件 treeView_main.ImageIndex = 0; //默认图标 treeView_main.SelectedImageIndex = 1; //选中时图标 treeView_main.CheckBoxes = true; //是否复选框(默认情况第0个图标,选中情况第1个图标) treeView_main.StateImageList = imageList_State; //用户自定义状态控件 loadTreeView(); //初始化加载TreeView } /// <summary> /// 初始化TreeView /// </summary> private void loadTreeView() { for (int i = 0; i < 5; i ++) { TreeNode treeNode_1 = new TreeNode(); //添加根节点 treeNode_1.Text = "根节点" + i; treeView_main.Nodes.Add(treeNode_1); //添加子节点 for (int j = 0; j < 5; j ++) //添加二级节点 { TreeNode treeNode_2 = new TreeNode(); treeNode_2.Text = i + ":二级节点" + j; treeNode_1.Nodes.Add(treeNode_2); } } }
如图,默认状态下,图标为 ,选中状态下,图标为 。复选框未选中时图标为 ,目标选中时,图标为 。
树形图不显示线条
TreeView控件右键操作
参考网址
[1] C# TreeView 控件的综合使用方法: https://blog.csdn.net/imxiangzi/article/details/81200517
[2]官网TreeNode说明: https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.treenode?view=netframework-4.7.2