C# TreeView(get disk info)
using System;
using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ch3_4
{ /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); //初始化TreeView的根节点
InitialTreeView(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// <summary>
/// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitialTreeView() { //将驱动器字符串数组设为空 string[] drivers=null; //检索此计算机上逻辑驱动器的名称 drivers=Directory.GetLogicalDrives(); int i=0; //初始化每一个逻辑驱动器
while ( i<drivers.GetLength(0)) { this.treeView1.Nodes.Add(new TreeNode(drivers[i],1,1)); string path=drivers[i]; string[] dirs=null; try { //获得指定驱动器中第一级目录的名称 dirs=Directory.GetDirectories(path); } catch(Exception error) { //错误处理为空,即忽略 } if (dirs!=null) { //为每一个代表驱动器的根节点添加子节点 for (int j=0;j<dirs.Length;j++) { //获得节点的去掉路径后的目录名 TreeNode node = new TreeNode(dirs[j].ToString().Substring(dirs[j].ToString().LastIndexOf("\\")+1)); //设置不选定状态下的图标 node.ImageIndex =2; //设置打开状态下的图标 node.SelectedImageIndex =0; //添加节点 this.treeView1.Nodes[i].Nodes.Add(node); } } //继续下一个循环 i++; } } /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } private void treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{ //获取发出信息的节点 TreeNode node=e.Node; //设置它为treeView的当前节点 this.treeView1.SelectedNode=node; string path=node.FullPath; string[] dirs=null; try { //获得当前节点所有的子节点 dirs=Directory.GetDirectories(path); } catch(Exception error) { //错误处理为空,即忽略 } if (dirs!=null) { //为每一个当前节点的字节点添加子节点 for (int j=0;j<dirs.Length;j++) { //如果当前节点的子节点数为0,则为它添加子节点 //否则说明已经添加过或则没有子目录 if (node.Nodes[j].Nodes.Count==0) { //调用函数为子节点添加子节点 addDirectroy(node.Nodes[j],dirs[j]); } } } } private void addDirectroy(TreeNode node,string path) { string[] dirs=null; try { dirs=Directory.GetDirectories(path); } catch(Exception e) { //错误处理为空,即忽略 } if(dirs!=null) { for (int j=0;j<dirs.Length;j++) { //添加新的子节点 TreeNode nodeNew= new TreeNode(dirs[j].ToString().Substring(dirs[j].ToString().LastIndexOf("\\")+1)); //设置不选定状态下的图标 nodeNew.ImageIndex =2; //设置打开状态下的图标 nodeNew.SelectedImageIndex =0; node.Nodes.Add(nodeNew); } } } private void checkBox1_CheckedChanged(object sender, System.EventArgs e) { this.treeView1.Sorted = this.checkBox1.Checked; } private void checkBox2_CheckedChanged(object sender, System.EventArgs e)
{ this.treeView1.ShowLines=this.checkBox2.Checked; } private void checkBox3_CheckedChanged(object sender, System.EventArgs e)
{ this.treeView1.ShowRootLines=this.checkBox3.Checked; } private void checkBox4_CheckedChanged(object sender, System.EventArgs e)
{ this.treeView1.CheckBoxes=this.checkBox4.Checked; } private void checkBox5_CheckedChanged(object sender, System.EventArgs e) { this.treeView1.ShowPlusMinus=this.checkBox5.Checked; } private void checkBox6_CheckedChanged(object sender, System.EventArgs e)
{ this.treeView1.HideSelection=this.checkBox6.Checked; } private void checkBox7_CheckedChanged(object sender, System.EventArgs e)
{ this.treeView1.HotTracking=this.checkBox7.Checked; } } } 本文出自 51CTO.COM技术博客 |


逍遥散人
博客统计信息
热门文章
最新评论
友情链接
