C# WinForm TreeView动态生成目录
数据库表结构
要动态生成树状图目录首先要明确层级之间的关系
这里确定了数据库中各级目录的关系
代码
递归创建子节点
public void CreateNodes(TreeNode ParentNode, int ParentId)
{
using (Model1 db = new Model1())
{
//数据库查询该节点的“儿子节点”
List<TreeView> trees = db.TreeView.Where(t => t.SuperiorId==ParentId)
.ToList();
foreach (var item in trees)
{
TreeNode nodes = new TreeNode();
nodes.Tag = item.id;
nodes.Text = item.name;
ParentNode.Nodes.Add(nodes);
//使用递归添加子节点
CreateNodes(nodes, item.id);
}
}
}
绑定Tree View
public void BindTreeView()
{
//添加一个节点类
TreeNode node = new TreeNode();
node.Tag = 0;
node.Text = "目录结构";
//通过递归遍历出节点下的所有子节点
CreateNodes(node, 0);
treeView1.Nodes.Add(node);
treeView1.ExpandAll();
}
效果图