#region 加载文件夹及文件到树
/// <summary>
/// 加载文件夹文件到树控件
/// </summary>
/// <param name="Tv">TreeView</param>
/// <param name="DirPath">要加载的文件夹路径</param>
/// <param name="ImgList">ImageList</param>
/// <returns>True/False</returns>
public bool LoadDirAndFiles(TreeView Tv, string DirPath, ImageList ImgList)
{
try
{
Tv.Nodes.Clear();
Tv.ImageList = ImgList;
//遍历文件夹
foreach (DirectoryInfo Dir in new DirectoryInfo(DirPath).GetDirectories())
{
TreeNode TN = new TreeNode();
TN.Text = Dir.Name;
TN.Tag = Dir.FullName;
SetTreeNodeIcon(TN, "Dir", ImgList);
Tv.Nodes.Add(TN);
ForLoadDirAndFiles(TN, Dir, ImgList);
//遍历文件夹下的文件
foreach (FileInfo File in Dir.GetFiles())
{
TreeNode FTn = new TreeNode();
FTn.Text = File.Name;
FTn.Tag = File.FullName;
SetTreeNodeIcon(FTn, File.Extension, ImgList);
TN.Nodes.Add(FTn);
}
}
//遍历文件夹下的文件
foreach (FileInfo file in new DirectoryInfo(DirPath).GetFiles())
{
TreeNode aTn = new TreeNode();
aTn.Text = file.Name;
aTn.Tag = file.FullName;
SetTreeNodeIcon(aTn, file.Extension, ImgList);
Tv.Nodes.Add(aTn);
}
return true;
}
catch
{
return false;
}
}
/// <summary>
///加载传入的文件夹文件列表
/// </summary>
/// <param name="CurrTn">树节点</param>
/// <param name="CurrDir">文件夹</param>
private void ForLoadDirAndFiles(TreeNode CurrTn, DirectoryInfo CurrDir, ImageList ImgList)
{
//遍历CurrDir文件夹下的文件夹
foreach (DirectoryInfo aDir in CurrDir.GetDirectories())
{
TreeNode TN = new TreeNode();
TN.Text = aDir.Name;
TN.Tag = aDir.FullName;
SetTreeNodeIcon(TN, "dir", ImgList);
CurrTn.Nodes.Add(TN);
// 遍历文件下的文件
foreach (FileInfo File in aDir.GetFiles())
{
TreeNode aNode = new TreeNode();
aNode.Text = File.Name;
aNode.Tag = File.FullName;
TN.Nodes.Add(aNode);
SetTreeNodeIcon(TN, File.Extension, ImgList);
}
ForLoadDirAndFiles(TN, aDir, ImgList);
}
}
/// <summary>
/// 设置节点的图标
/// </summary>
/// <param name="Tn">节点</param>
/// <param name="strLX"></param>
/// <param name="ImgList">图像</param>
private void SetTreeNodeIcon(TreeNode Tn, string strLX,ImageList ImgList)
{
strLX = strLX.Replace('.',' ');
if (strLX.ToLower() == "dir") //目录
{
Tn.ImageIndex = ImgList.Images.IndexOfKey("close");
Tn.SelectedImageIndex = ImgList.Images.IndexOfKey("open");
}
else
{
Tn.ImageIndex = ImgList.Images.IndexOfKey(strLX.Trim());
Tn.SelectedImageIndex = ImgList.Images.IndexOfKey(strLX.Trim());
}
}
#endregion
#region 加载文件夹到树
/// <summary>
/// 加载文件夹
/// </summary>
/// <param name="TV">TreeView</param>
/// <param name="DirPath">要加载的文件夹路径</param>
/// <param name="ImgList">ImageList</param>
/// <returns></returns>
public bool LoadDirectories(TreeView TV, string DirPath,ImageList ImgList)
{
try
{
TV.Nodes.Clear();
TV.ImageList = ImgList;
foreach (DirectoryInfo Dir in new DirectoryInfo(DirPath).GetDirectories())
{
TreeNode TN = new TreeNode();
TN.Text = Dir.Name;
TN.Tag = Dir.FullName;
SetTreeNodeIcon(TN, "Dir", ImgList);
TV.Nodes.Add(TN);
ForLoadDirs(TN, Dir, ImgList);
}
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 递归文件夹
/// </summary>
/// <param name="Tn"></param>
/// <param name="Dir"></param>
/// <param name="ImgList"></param>
private void ForLoadDirs(TreeNode Tn, DirectoryInfo Dir, ImageList ImgList)
{
foreach (DirectoryInfo directory in Dir.GetDirectories())
{
TreeNode t = new TreeNode();
t.Text = directory.Name;
t.Tag = directory.FullName;
SetTreeNodeIcon(Tn, "dir", ImgList);
Tn.Nodes.Add(t);
ForLoadDirs(t, directory, ImgList);
}
}
#endregion
分享到:
相关推荐
这篇博客文章,通过链接,详细讲解了`TreeView`控件的使用方法,主要涉及以下几个关键知识点: 1. **基本概念**:`TreeView`控件由一系列的`TreeNode`对象组成,每个`TreeNode`代表一个层级。根节点通常表示顶层...
本篇将详细介绍TreeView控件的基本用法,以及如何在实际开发中有效利用它。 **一、TreeView控件的基本元素** 1. **节点(Node)**:TreeView中的基本单位,可以包含子节点,形成层级结构。每个节点通常由一个文本...
在Web开发中,TreeView控件工具是构建这些交互式树状视图的关键组件。本篇文章将深入探讨TreeView控件的相关知识,以jQuery Treeview为例进行详细解析。 首先,TreeView控件的基本功能包括展开、折叠节点,以及通过...
本篇文章将深入探讨如何使用TreeView控件在VS2005中设计OA办公系统的导航。 1. **TreeView控件介绍** TreeView控件是ASP.NET提供的一种用于显示层次结构数据的控件,它可以模拟Windows操作系统中的文件资源管理器...
在Windows Forms开发中,`TreeView`控件是一个常用的组件,用于展示层次化的数据结构,例如文件系统、组织结构等。本篇文章将详细讲解如何在C#的WinForms环境中,利用.NET Framework 2.0实现`TreeView`控件的拖放...
Treeview控件是Windows应用程序开发中常用的一种图形用户界面(GUI)组件,它通常用于显示层级结构的数据,如文件系统、组织结构或者数据库中的树状数据。在本篇中,我们将深入探讨Treeview控件的功能、特性以及如何...
在.NET开发中,TreeView控件是一个常用的数据呈现组件,它以树形结构显示数据,常用于网站或应用程序的导航和信息展示。实现右键菜单编辑功能对于增强用户体验和交互性非常关键。本篇将深入探讨如何在TreeView控件中...
本篇将详细讲解如何使用.NET TreeView控件,并结合MySQL数据库进行数据交互。 一、TreeView控件基础 1. 添加TreeView控件:在Visual Studio的设计界面中,从工具箱选择TreeView控件并将其拖放到窗体上。也可以通过...
1. **TreeView控件的基本概念** `TreeView`控件由一系列`TreeNode`对象组成,每个`TreeNode`代表树结构中的一个节点。节点可以有父节点和子节点,形成层级关系。`TreeView`控件提供了丰富的事件和方法,便于操作...
总之,通过巧妙地结合C#中的ComboBox和TreeView控件,我们可以创建出具有层次感的用户界面,使用户能更直观、方便地浏览和操作层次结构的数据。这种技术在各种应用场景中都十分有用,比如配置管理、文件浏览等。理解...
在Windows应用程序开发中,TreeView控件是一个非常常用且功能强大的组件。它允许用户以树状结构展示数据,常用于文件系统、目录结构或者层次关系的数据表示。本篇将深入探讨`TreeView`控件的使用,以及如何实现描述...
在本篇中,我们将深入探讨ASTreeView 1.3.0,一个针对ASP.NET平台优化的高级Treeview控件,它具备了丰富的功能和优秀的用户体验。 **ASTreeView特性** 1. **拖放功能**:ASTreeView 1.3.0 支持节点的拖放操作,...
在Windows Forms应用程序开发中,`TreeView`控件是一个不可或缺的部分,尤其在需要展现层次结构数据时。本篇文章将深入探讨`TreeView`控件在Windows Forms中的应用及其主要功能。 `TreeView`控件在Windows Forms中...
在Windows应用程序开发中,TreeView控件是一个非常常用且功能强大的组件。它允许用户以树状结构展示数据,常用于文件系统、目录结构或者层次关系的数据表示。本篇将深入探讨如何使用TreeView控件,以及其在实际应用...
在实际开发中,`TreeView`控件的使用不仅限于与`DataGridView`的结合,还可以与其他控件配合,如`TabControl`,或者通过拖放操作实现文件管理器的功能。`TreeView`控件的灵活性和强大功能使其成为.NET开发中的重要...
在IT领域,treeview控件是一种常见的用户界面元素,它用于以树形结构展示数据,使得用户可以方便地浏览和操作层级关系的数据。本篇将详细探讨dojo库中的treeview控件,以及如何利用它来实现功能完备的树视图。 Dojo...
Winform TreeView控件基础 `TreeView`控件允许展示一个可折叠和展开的节点树,每个节点可以包含子节点。通过`TreeNode`类,我们可以创建和操作这些节点。`TreeView`控件的常用属性包括: - `Nodes`: 存储根节点的...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨如何利用C#与ASP.NET技术实现TreeView控件从数据库中动态生成树形结构。 ### 一、背景介绍 在Web开发中,TreeView 控件是一种非常有用的工具,它可以帮助...
本篇文章将详细介绍如何利用TreeView控件来高效地实现树结构的显示,并提供快速查找树节点的方法。此外,还将探讨一种通用的树结构数据存储方案,以便于更好地管理和操作这些树状数据。 #### 使用TreeView控件实现...
本篇文章将深入探讨如何在VB中使用TreeView控件,包括其基本概念、主要属性、方法和事件,以及如何创建和操作树视图实例。 ### 1. TreeView控件介绍 TreeView控件是一个图形界面元素,它由一系列可展开/折叠的节点...