C# TreeView的用法(递归加载节点内容)

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Orag> list = new List<Orag>();
private void Form1_Load(object sender, EventArgs e)
{
list = new List<Orag> { new Orag(1, 0, "上海公司"), new Orag(5, 0, "北京公司"), new Orag(2, 1, "上海公司1"), new Orag(3, 1, "上海公司2"), new Orag(7, 3, "上海公司2-1"), new Orag(4, 1, "上海公司3"), new Orag(6, 5, "北京公司1") };
Addnode();
}

public void Addnode()
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].pid==0)
{
TreeNode pnode = new TreeNode();
pnode.Text = list[i].name;
pnode.Tag = list[i].id;
treeView1.Nodes.Add(pnode);
AddChildnode(list[i].id,pnode);
}
}
}

public void AddChildnode(int pid,TreeNode pnode)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].pid == pid)
{
TreeNode cnode = new TreeNode();
cnode.Text = list[i].name;
cnode.Tag = list[i].id;
pnode.Nodes.Add(cnode);
AddChildnode(list[i].id,cnode);
}
}
}

public class Orag
{
public int id { get; set; }
public int pid { get; set; }
public string name { get; set; }

public Orag(int id,int pid,string name)
{
this.id = id;
this.pid = pid;
this.name = name;
}
}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Tag.ToString());
}
}

结果如图所示:

时间: 2024-10-19 05:28:49

C# TreeView的用法(递归加载节点内容)的相关文章

省市数据递归加载到TreeView

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; using System.Data.SqlClient; namespace 省市数据递归加载到TreeView { public

C# IO操作(五)文件的递归加载

本篇是一个案例,其核心通过代码展示代码中的递归这个用法,程序的界面如下: 当点击“加载”按钮时,根据路径中的地址,加载该文件夹下所有的子文件夹和子文件,代码如下: 1 private void BtnLoad_Click(object sender, EventArgs e) 2 { 3 string sPath = txtPath.Text.Trim(); 4 LoadDirAndFile(sPath, tvList.Nodes); 5 } 6 7 private void LoadDirAn

ligerui_ligerTree_007_ligerTree动态加载节点

ligerui:ligerTree:动态加载节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt [ { text: '节点1', children: [ { text: '节点1.1' }, { text: '节点1.2' }, { text: '节点1.3', children: [ { text: '节点1.3.1' ,children: [ { text: '节点1.3.1.1' },

滚动加载服务器端内容——例子

网页代码如下 <!doctype html> <html> <head> <meta charset="utf-8"> <title>滚动加载</title> <style> * {margin:0; padding:0; border:0;} #container {width:960px; margin:auto;} #container:after {display:block; height:0

打开Vs2010时,卡在加载工具箱内容 不动了

我是直接打开Visual Studio 2010,而不是以打开解决方案的方式打开.然后就在左下角显示"正在从包'Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage'{2C298B35-07DA-45F1-96A3-BE55D91C8D7A}加载工具箱内容"的时候卡住...并且在WIndows任务栏的右边显示一个Visual Studio 2010小图标,鼠标经过时会浮动提示"延

打开Visual Studio 2010,左下角显示加载工具箱内容

打开Visual Studio 2010,左下角显示加载工具箱内容 不知何时起,每次打开Visual Studio2010时在左下角显示加载工具箱内容,这个过程简直就是煎熬. 于是开始在网上查找解决办法.大多解决办法都是用Visual Studio2010命令提示符执行以下两个命令: 1,输入:devenv /ResetSkipPkgs,然后回车 2,输入:devenv /ResetSettings,然后回车 在经过n变尝试之后发现并无卵用.  最后好不容易找到以下这篇文章: http://mi

spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果

由于手机的携带的方便性和手机的越来越智能和移动网速越来越快,手机已经充斥着人们的生活.随着手机的流行, 移动应用也快速的火了起来比如微商城.手机网页.移动APP等等.既然移动应用这么火,我们今天来讲一下怎样实现在移 动网页中动态加载数据,那么我们怎么实现呢,是像pc网页那样,有个上一页和下一页还是其它的方式. 其实像pc网页那样上一页和下一页肯定不行的,手机屏幕很小,不好点击同时用户体验很差,今天来给大家介绍使用 spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果的方式

Framework7学习笔记之 无限滚动(滚动到底部时加载新内容)

一:为页面添加无限滚动控件 在可滚动的容器上(一般为page-content)添加"infinite-scroll"类:在页面底部定义 加载指示器. <div class="page"> <div class="page-content infinite-scroll" data-distance="100"> ... <!-- 加载提示符 --> <div class="i

Asp.net TreeView动态加载节点(一)

1.TreeNode的PopulateOnDemand="True"后节点就是动态从后台加载的. 2.但是如果上层TreeView的EnableClientScript="false",就会导致页面Postback 3.TreeView的TreeNodePopulate是PopulateOnDemand="True"并且TreeNode内已有数据才触发的 4.TreeNode的Depth属性是指从根结点算起到现在节点的层数,根结点层数为0 5.T