//仿资源浏览器
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.IO;
namespace TreeViewDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//get all drives
DriveInfo[] drives = DriveInfo.GetDrives();
//show all drives in the tree
foreach (DriveInfo d in drives)
{
DirectoryInfo root = d.RootDirectory;
//create a root node
TreeNode node = new TreeNode();
node.Text = root.Name;
node.Tag = root;
treeView1.Nodes.Add(node);
node.Nodes.Add(new TreeNode());
}
}
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
if (e.Action ==TreeViewAction.Expand)
{
DirectoryInfo parentFolder = (DirectoryInfo)e.Node.Tag;
//get all sub folders
DirectoryInfo[] folders = parentFolder.GetDirectories();
e.Node.Nodes.Clear();
//construct sub node
foreach (DirectoryInfo folder in folders)
{
TreeNode folderNode = new TreeNode();
folderNode.Text = folder.Name;
folderNode.Tag = folder;
e.Node.Nodes.Add(folderNode);
}
}
}
private void btnExpend_Click(object sender, EventArgs e)
{
//获取当前选中节点
TreeNode selectNode = this.treeView1.SelectedNode;
if (selectNode != null)
{
selectNode.Expand();
}
}
private void btnClose_Click(object sender, EventArgs e)
{
//获取当前选中节点
TreeNode selectNode = this.treeView1.SelectedNode;
if (selectNode != null)
{
selectNode.Collapse();
}
}
private void btnExpandAndCollapse_Click(object sender, EventArgs e)
{
TreeNode selectNode = this.treeView1.SelectedNode;
if (selectNode != null)
{
selectNode.Toggle();
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
TreeNode selectNode = this.treeView1.SelectedNode;
if (selectNode != null)
{
selectNode.Nodes.Add(new TreeNode("新建文件夹"));
}
}
private void btnDelete_Click(object sender, EventArgs e)
{
TreeNode selectNode = this.treeView1.SelectedNode;
if (selectNode != null)
{
selectNode.Parent.Nodes.Remove(selectNode);
}
}
}
}