html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

treeview的源代码_.NET教程_编程技术

[ ] 已经帮助:人解决问题
treeview|源代码
using System;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using System.IO;

class FolderDialog:Form
{
  TreeView FolderTree;
  ImageList FolderTreeIcons;
  TreeNode RootNode;
  string[] IconFileNames={"MyComp.ico","Drive.ico","OpenFold.ico","ClsdFold.ico"};
  public FolderDialog()
  {
    //Manipulate ImageList
    FolderTreeIcons=new ImageList();
    for(int i=0;i<IconFileNames.Length;i++)
    {
      FolderTreeIcons.Images.Add(Image.FromFile(@"Images/" + IconFileNames[i]));
    }
    
    //Setting Properties for TreeView
    FolderTree=new TreeView();
    FolderTree.AfterSelect+=new TreeViewEventHandler(Node_Select);
    FolderTree.ImageList=FolderTreeIcons;
    FolderTree.Anchor=AnchorStyles.Top|AnchorStyles.Bottom|AnchorStyles.Left|AnchorStyles.Right;
        

    //Root Node
    RootNode=new TreeNode();
    RootNode.Text="My Computer";
    RootNode.Tag="My Computer";
    RootNode.ImageIndex=0;
    FolderTree.Nodes.Add(RootNode);
    FolderTree.SelectedNode=RootNode;
    FolderTree.SelectedNode.ImageIndex=0;

    this.Text="Browse For Folder";
    this.Size=new Size(300,300);
    FolderTree.Size=new Size(290,275);
  
    this.Controls.Add(FolderTree);
  }

  private void EnumDrives(TreeNode ParentNode)
  {
    if(ParentNode.Nodes.Count==0)
    {    
      foreach(string drive in Directory.GetLogicalDrives())
      {
         FolderTree.SelectedNode=ParentNode;
         TreeNode TempNode=new TreeNode();
         TempNode.Text=drive.Substring(0,drive.Length-1);
         TempNode.Tag=drive;
         TempNode.ImageIndex=1;
         TempNode.SelectedImageIndex=1;
         FolderTree.SelectedNode.Nodes.Add(TempNode);
         FolderTree.SelectedNode.Nodes[FolderTree.SelectedNode.Nodes.Count-1].EnsureVisible();
      }
    }
  }

  private void EnumDirectories(TreeNode ParentNode)
  {
    FolderTree.SelectedNode=ParentNode;
    string DirectoryPath=ParentNode.Tag.ToString();
    if(ParentNode.Nodes.Count==0)
    {
      if(DirectoryPath.Substring(DirectoryPath.Length-1)!=@"/")
        DirectoryPath+=@"/";
      try
      {
        foreach(string directory in Directory.GetDirectories(DirectoryPath))
        {
          TreeNode TempNode=new TreeNode();
          TempNode.Text=directory.Substring(directory.LastIndexOf(@"/")+1);
          TempNode.Tag=directory;
          TempNode.ImageIndex=3;
          TempNode.SelectedImageIndex=2;
          FolderTree.SelectedNode.Nodes.Add(TempNode);
          FolderTree.SelectedNode.Nodes[FolderTree.SelectedNode.Nodes.Count-1].EnsureVisible();
        }
      }
      catch(Exception)
      {
      }
    }
}

  private void Node_Select(object sender,TreeViewEventArgs e)
  {
    if(e.Node.Tag.ToString()!="My Computer")
      EnumDirectories(e.Node);
    else
      EnumDrives(e.Node);
  }

  public static void Main()
  {
    Application.Run(new FolderDialog());
  }
}(转自:http://www.c-sharpcorner.com/winforms/UsingTreeViewPSD.asp)
5LyHTML5中文学习网 - HTML5先行者学习网
5LyHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助