treeview的源代码

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)

时间: 2024-08-03 16:18:53

treeview的源代码的相关文章

Asp.net 2.0 Treeview无限级无刷新示例

本文给出了使用Asp.net 2.0的Treeview实现无限级无刷新的示例源代码,供大家参考! <%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dt

实现 Asp.Net 2.0的TreeView客户端个性化控制

ASP.NET 2.0 的 TreeView 控件功能虽说强大,但其客户端控制很逊色,本文将讲解 TreeView 的客户端实现原理,并实现两个个性化操作: (1) 节点的全部打开和关闭; TreeNode Expand(or Collapse) all (2) 只打开一个节点(关闭其他兄弟节点). just one node expanded(when a client expand one node all other will collaps) 用记事本打开页面源代码,可以找到一下两个脚本

treeview添加或删除节点,如何能保存上?

问题描述 小妹还没分可给,但是请高人帮帮我,我想在treeview上加节点,怎么样才能保存上呢?我每次加上节点之后,返回重新运行form程序就又没了.我用的是vs2005,不是asp.net只是基于windowsForm的简单程序,我的目的就是一个treeview树,上面有一些名称什么的信息,我只想对这些信息进行查询(已经实现),添加或删除节点.现在我就是不能添加或删除节点,能帮帮我吗? 解决方案 解决方案二:对了,我有50分,送上!请知道答案的高人帮帮小妹!在线等!解决方案三:楼主你的tree

WPF:使用Json.NET在TreeView中树形显示JSON数据

原文  WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工具 或者一个更大的开源工程(构建和分析HTTP并支持XML及JSON的树形显示): Mgen Bluckbadda   效果如下: (每一个项目中的左侧黑字是数据的值,右侧灰字是数据的类型.对于对象或数组,黑字会显示对象的属性个数或数组的成员个数) (上图中的JSON数据来自:http://www

Silverlight Telerik控件学习:带CheckBox复选框的树形TreeView控件

在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择.分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了 解决方案一: 利用Silvelright ToolKit(微软的开源项目),项目地址http://silverlight.codeplex.com/ 在线演示地址:http://silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html 解决方

怎样去掉treeview的节点的下划线?

问题描述 怎样去掉treeview的节点的下划线?感觉有下划线不太好看,但不知道怎么去掉 解决方案 解决方案二:showlines=false这样?解决方案三:如果是鼠标放上去显示下划线的话,你可以CSS来控制一下就行了解决方案四:引用2楼5653325的回复: 如果是鼠标放上去显示下划线的话,你可以CSS来控制一下就行了 showline是节点的连接线,不是下划线现在的情况是,鼠标不放上去也显示下划线,用CSS怎么去掉下划线啊谢谢解决方案五:css解决方案六:实现方法很简单,在源代码的<hea

转贴自MS:扩展 TreeView 控件 (1)

Windows 窗体控件开发示例 Duncan MackenzieMicrosoft Developer Network 2002 年 5 月 摘要:讲述了如何向 TreeView 控件添加数据绑定功能,它是一系列 Microsoft Windows 控件开发示例之一.您可以将本文与相关的概述文章结合起来阅读.您可以从 MSDN Code Center 下载 WinFormControls.exe(英文)源代码.(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理

Using TreeControl (TreeView) under Win32 API

该例子在我的资源里面可以下载到完全可以运行的源代码http://download.111cn.net/source/463178 Introduction Hi all Win32 Coders, and happy new year to you all! This article is for those who did not find, any useful code examples and information regarding tree control (TreeView).

php查看网页源代码的方法

 这篇文章主要介绍了php查看网页源代码的方法,涉及php读取网页文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php查看网页源代码的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 <?php $url = "http://www.jb51.net"; $fp = @fopen($url, 'r') or die("Cannot Open $url via Get method"); wh