使用WinFrom控件-TreeView
为了后续课程的学习,今天老师讲了一个新的控件-TreeView,说实话,上课真的没听明白,回家看了一晚上才弄懂,哎,我太愚钝了.
定义一个
TreeView控件命名为tv
private
void frmTreeView_Load(object sender, EventArgs e)
{
TreeNode
node1 = new TreeNode(); //
创建TreeView节点
node1.Text = "C://"; //
树节点标签显示的文本
TreeNode
node2 = new TreeNode();
node2.Text = "D://";
TreeNode
childNode1 = new TreeNode();
childNode1.Text = "Programs";
node1.Nodes.Add(childNode1); //
将childNode1添加为node1的子节点
tv.Nodes.Add(node1); //
将根节点添加到TreeView控件中
tv.Nodes.Add(node2);
}
应用进阶
:制作一个类似windows资源管理器的窗口,使用TreeView控件显示计算机磁盘及目录结构.
第一步
:添加根目录
DriveInfo
[] drive = DriveInfo.GetDrives();//
获取计算机所有逻辑启动器名,返回一个DriveInfo类型数组
foreach
(DriveInfo var in drive) //
遍历drive 将驱动器名写入根节点
{
TreeNode node = new TreeNode();
node.Text = var.ToString();
//………
这里要添加子目录
tv.Nodes.Add(node);
}
第二步
:添加子目录,定义一个方法
///
<summary>
///
把path下的子目录都添加到node上
///
</summary>
///
<param name="path">
当前路径
</param>
///
<param name="node">
当前节点
</param>
public
void addPath(string path,TreeNode node)
{
string
[] childPath = Directory.GetDirectories(path);//
获取当前目录中子目录,返回string类型数组
foreach
(string var in childPath) //
遍历childPath
{
TreeNode
nodeChild = new TreeNode();
node.Nodes.Add(nodeChild);
addPath(var,nodeChild);//
如果子目录下还有子目录就一直循环到没有子目录为止
}
}
将以上方法应用到程序主体:
DriveInfo
[] drive = DriveInfo.GetDrives();
foreach
(DriveInfo var in drive)
{
int
i = var.LastIndexOf('//');
//
取出多余路径
string varStu = var;
if (i > 0)
{
varStu = var.Substring(i+1);
}
TreeNode node = new TreeNode(
varStu
); //(
varStu)
等同于node.Text= var;
node.Text = var.ToString();
addPath(var.ToString(),node); //………
这里要添加子目录
tv.Nodes.Add(node);
}
2010/03/28 整理