C#を攻略しよう

c#

ツリービューでファイルリスト

ツリービューにファイルリストを表示するサンプルプログラムです。フォルダまたはファイルがクリックされると、下部のテキストボックスにフルパスとファイル名を表示します。

ツリービュー


[TOP]


1.「ファイル」→「新しいプロジェクト」→「WINDOWSアプリケーション」を選択。

2.ツールボックスから「TreeView」、「TextBox」、「ImageList」を上図のように配置する。

3.「ImageList」のプロバティから、「Images」という項目の右側にある「・・・」をクリックして、アイコンをセットする。「追加」ボタンから下記の順にアイコンファイルを3つセットする。
    0. ドライブのアイコン
    1.閉じたフォルダのアイコン
    2.開いたフォルダのアイコン
    3.ファイルのアイコン

4.「Form」のイベントから「Load」を、「TreeView」イベントから「BeforeExpand」と「NodeMouseClick」を、選択して、次のコード(黒文字部分)を入力する。

using System.IO;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {

        DirectoryInfo di;

<中略>

private void Form1_Load(object sender, EventArgs e)
{

    TreeNode tn;
    string[] dri = Environment.GetLogicalDrives();//ドライブ名を取得
    foreach (string d in dri)
    {
        n = new TreeNode(d, 0, 0);//ノードにドライブアイコンを設定
        treeView1.Nodes.Add(tn);//親ノードにドライブを設定
        tn.Nodes.Add("...");//架空の枝を追加
    }
}

//ノードを展開しようとしているときに発生するイベント
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{

    TreeNode tn = e.Node, tn2;
    string d = tn.FullPath;//展開するノードのフルパスを取得
    tn.Nodes.Clear();
    di = new DirectoryInfo(d);//ディレクトリ一覧を取得
    try
    {
        foreach (DirectoryInfo d2 in di.GetDirectories())
        {
            tn2 = new TreeNode(d2.Name, 1, 2);
            tn.Nodes.Add(tn2);
            tn2.Nodes.Add("...");
        }
        foreach (FileInfo fi in di.GetFiles())
        {
            tn2 = new TreeNode(fi.Name, 3, 3);
            tn.Nodes.Add(tn2);
        }
        }
        catch { }
}

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{

    textBox1.Text = e.Node.FullPath;
    textBox2.Text = e.Node.Text;
}

メソッドの上にマウスポインタをもってくると、ポップアップヒントが表示されます。またF1キーを押すと、ヘルプが立ち上がります。

<解説>
本プログラムでは、フォルダが展開されるごとに、その配下のフォルダとアイコンをノードに追加しています。

 

 

※当サイトは、リンクフリーです。