DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#2005でTreeViewのタグをつけたい

環境/言語:[C#2005]
分類:[その他]

C#2005でCSV形式のデータを読み込ませてTreeView上に表示させているのですが、
TreeViewにはタグを付けられると聞きました。
MSDNを見ましたが、型が異なるのエラーが出てうまく動作しませんでした。
一つのノードにTagは複数付与できるのでしょうか?
具体的にタグには、フォルダの作成日時、ファイル数やフォルダ数、ファイルサイズなどをタグ情報として持たせたいと考えています。
出来るとすれば仕様霊的なものをご教授願えればと思います。


※ フォルダ情報をツリー形式にしたものです。
 CSVデータの方は下記のような構造で、文字列があったらノードに追加し、データのないもの「,,」の情報はツリーの階層として読み込ませています。

C,,,,,,,,,
,Program_files,,,,,,,,
,Microsoft,,,,,,,,
,,・,,,,,,,
,,・,,,,,,,
,,,,・,,,,,
,,,,,,・,,,
,,Mydocument,,,,,,,,
,,,,・,,,,,
,,,,,,・,,,
   ・
     ・
■No28677に返信(AZさんの記事)

> 一つのノードにTagは複数付与できるのでしょうか?
> 具体的にタグには、フォルダの作成日時、ファイル数やフォルダ数、ファイルサイズなどをタグ情報として持たせたいと考えています。
> 出来るとすれば仕様霊的なものをご教授願えればと思います。
Object型だからその情報をもったクラス作れば設定できますよ。
キャストするのが大変ということであれば、TreeNodeを派生させて
必要な情報を追加するという方法もあります。

Tagの例は

public class NodeData
{
public DateTime CreateDate {get;set;}
public int FileNum { get; set; }
}


TreeNode nd = treeView1.Nodes.Add("aaa");
nd.Tag = new NodeData() { CreateDate = new DateTime(2011, 6, 10), FileNum = 10 };

こんな感じです。


派生を使う場合

public class CustomNode:TreeNode
{
public CustomNode(string Text):base(Text)
{
}

public DateTime CreateDate { get; set; }
public int FileNum { get; set; }
}


CustomNode nd = new CustomNode("aaa");
nd.CreateDate = new DateTime(2011, 6, 15);
nd.FileNum = 15;
treeView1.Nodes.Add(nd);

のような感じです。

DOBON.NET | プログラミング道 | プログラミング掲示板