前言:
眼前各位老铁们对“treeview获取父节点”大致比较关心,朋友们都需要知道一些“treeview获取父节点”的相关文章。那么小编在网络上网罗了一些对于“treeview获取父节点””的相关知识,希望小伙伴们能喜欢,咱们快快来学习一下吧!效果:1、准备几张自定义图片,我这里因为treeview有3级,所以我准备了3张2、添加一个 imageList 控件
把这3张图片加进去
3、将treeview的imagelist属性选成刚才的imagelist,这样它们就关联起来了4、根据不同级别节点显示不同的图片
using System;using System.Collections;using System.Data;using System.Windows.Forms;namespace mybs{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //绑定数据 ResetStreeview(); } //数据库操作类,这个你得自己去写 //主要就是从数据库中弄数据出来 GO_DB db = new GO_DB(CS.Constr); void ResetStreeview() { //每次绑定先清空 StreeView.Nodes.Clear(); //从库中得到数据 string cmdstr = "select * from dir where type = '2'"; DataTable dt = (DataTable)db.GO_GetAllDatas(cmdstr)[1]; BindTreeView(dt, StreeView.Nodes, null, "TID", "PARENT_ID", "NAME"); //显示自定义图标 SetIcon(StreeView.Nodes); } void SetIcon(TreeNodeCollection tc) { foreach (TreeNode node in tc) { if (node.Tag == null) { node.ImageIndex = node.Level; SetIcon(node.Nodes); } else { node.ImageIndex = 2; } node.SelectedImageIndex = node.ImageIndex; } } private void BindTreeView(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text) { TreeNode tn; string filter = string.IsNullOrEmpty(pid_val) ? pid + " ='0'" : string.Format(pid + "='{0}'", pid_val); //根据theorder字段值排序 string orderfilter = "theorder asc"; DataRow[] rows = dt.Select(filter, orderfilter); foreach (DataRow row in rows) { tn = new TreeNode(); tn.Name = row[id].ToString(); tn.Text = row[text].ToString(); tnc.Add(tn); //递归 BindTreeView(dt, tn.Nodes, row[id].ToString(), id, pid, text); } } private void StreeView_AfterSelect(object sender, TreeViewEventArgs e) { //选择事件 label1.Text = "Name:" + e.Node.Name + "\r\n文本" + e.Node.Text; } }}总结:
这要就是看
//显示自定义图标
SetIcon(StreeView.Nodes);
这个函数内容了。
if (node.Tag == null)
{
node.ImageIndex = node.Level;
SetIcon(node.Nodes);
}
else //这里是没有带tag数据的节点,直接显示第3个图片,
{
node.ImageIndex = 2;
}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #treeview获取父节点