⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 foldertree.cs

📁 C#高级编程第6版随书源代码 值得下载
💻 CS
字号:
#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.IO;

#endregion

namespace FormsSample.SampleControls
{
  public class FolderTree : System.Windows.Forms.TreeView, ISupportInitialize
  {
    string _rootFolder = "";
    bool _showFiles = true;
    bool _inInit = false;

    public FolderTree()
    {

    }

    private void InitializeTree()
    {
      if (!this.DesignMode)
      {
        FolderNode rootNode = new FolderNode(_rootFolder);
        LoadTree(rootNode);
        this.Nodes.Clear();
        this.Nodes.Add(rootNode);
      }
    }


    private void LoadTree(FolderNode folder)
    {

      string[] dirs = Directory.GetDirectories(folder.FolderPath);
      foreach (string dir in dirs)
      {
        FolderNode tmpfolder = new FolderNode(dir);
        folder.Nodes.Add(tmpfolder);
        LoadTree(tmpfolder);
      }
      if (_showFiles)
      {

        string[] files = Directory.GetFiles(folder.FolderPath);
        foreach (string file in files)
        {
          FileNode fnode = new FileNode(file);
          folder.Nodes.Add(fnode);
        }

      }
    }


    [Category("Behavior"),
    Description("Gets or sets the base or root folder of the tree"),
    DefaultValue("")]
    public string RootFolder
    {
      get { return _rootFolder; }
      set
      {
        _rootFolder = value;
        if (!_inInit)
          InitializeTree();

      }
    }

    [Category("Behavior"),
      Description("Indicates whether files will be seen in the list."),
      DefaultValue(true)]
    public bool ShowFiles
    {
      get { return _showFiles; }
      set { _showFiles = value; }
    }


    [Browsable(false)]
    public string SelectedFolder
    {
      get
      {
        if (this.SelectedNode is FolderNode)
          return ((FolderNode)this.SelectedNode).FolderPath;

        return "";
      }
    }


    #region ISupportInitialize Members

    public void BeginInit()
    {
      _inInit = true;
    }

    public void EndInit()
    {
      if (_rootFolder != "")
      {
        InitializeTree();
      }
      _inInit = false;
    }

    #endregion

  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -