/// <summary>
/// 自定义节点类,继承于系统的 TreeNode 类
/// 自定义节点类的目的就是给节点增加一个 IsFirstExpand 属性
/// </summary>
public class DirNode : TreeNode
{
// 该节点是否首次被展开
private bool isFirstExpand = true;
public DirNode() : base()
{}
public DirNode(string text) : base(text)
{}
/// <summary>
/// 该节点是否首次被展开
/// 因为 TreeNode 没有该属性,那我们自己定义吧!
/// </summary>
public bool IsFirstExpand
{
get { return isFirstExpand; }
set { isFirstExpand = value; }
}
}
/// 自定义节点类,继承于系统的 TreeNode 类
/// 自定义节点类的目的就是给节点增加一个 IsFirstExpand 属性
/// </summary>
public class DirNode : TreeNode
{
// 该节点是否首次被展开
private bool isFirstExpand = true;
public DirNode() : base()
{}
public DirNode(string text) : base(text)
{}
/// <summary>
/// 该节点是否首次被展开
/// 因为 TreeNode 没有该属性,那我们自己定义吧!
/// </summary>
public bool IsFirstExpand
{
get { return isFirstExpand; }
set { isFirstExpand = value; }
}
}
自定义 TreeView 节点类有了“是否首次被展开”的属性之后,逐层展开 TreeView 节点的算法如下:
1) 在 Form_Load 时,先加载前两层节点(只是加载,不用展开)。
2) 在 BeforeExpand 事件,判断该节点“是否首次被展开”。
如果该节点“是否首次被展开”,那么我们就给该节点的“每个子节点”,再添加“子节点”(如果有的话)。
下面是一个加载目录树程序的完整代码:
}
}
本文地址:http://www.cnblogs.com/anjou/archive/2006/12/28/605628.html