ツリービューでファイルリスト
ツリービューにファイルリストを表示するサンプルプログラムです。フォルダまたはファイルがクリックされると、下部のテキストボックスにフルパスとファイル名を表示します。
[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キーを押すと、ヘルプが立ち上がります。
<解説>
本プログラムでは、フォルダが展開されるごとに、その配下のフォルダとアイコンをノードに追加しています。
※当サイトは、リンクフリーです。