C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

TreeViewのノードにImageListを表示


(過去ログ 7 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■7343 / inTopicNo.1)  TreeViewのノードにImageListを表示
  
□投稿者/ さと 二等兵(19回)-(2006/10/07(Sat) 16:59:04)

分類:[C#] 


分類:[C#] 

こんにちは、いつもお世話になっています。
行き詰まってしまったので、ご教授お願いします。

private void AllMusicTreeView_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e) {
long now = DateTime.Now.Ticks;
TreeNode c = e.Node;
if( c == null || c.Parent != null || c.Nodes.Count == 0 ) return;
if( c.Nodes[0].Tag != null )
return;
string type = c.Tag.ToString();

c.Nodes.Clear();
foreach( Tool tool in list ){
TreeNode node = new TreeNode( tool.曲名 );
node.Tag = tool;

if( tool.現在位置 != tool.保管場所 )
node.BackColor = Color.Red;
  c.Nodes.Add( node );
  }
}

node.BackColor = Color.Red;で保管場所と現在位置が違えば、赤くなるように
しています。ImageListで赤く表示されている所にアイコンを表示したい
のですが、プロパティでも全部に表示されてしまいますし、

if( tool.現在位置 != tool.保管場所 )
TreeView1.ImageList = imageList1;
    c.Nodes.Add( node );
としても全部に表示されてしまいます。

ドキュメントやMSDNで探してみたのですが、いまいちつかめません。

お忙しいとは思いますが、よろしくお願いします。



0
引用返信 編集キー/
■7344 / inTopicNo.2)  Re[1]: TreeViewのノードにImageListを表示
□投稿者/ 魔界の仮面弁士 大尉(177回)-(2006/10/07(Sat) 18:22:22)

分類:[C#] 

ImageList は、「複数の画像を管理するライブラリ」です。

たとえば、表示させたい画像が 3種類 あるなら、それらを
ImageList に事前に登録しておき、それを TreeView と
> TreeView1.ImageList = imageList1;
のようにして関連付けておきます。


そうすると各ノードは、その ImageList 中のいずれかの画像を
表示することができるようになります。このとき、TreeNode に
画像を表示させるために使うプロパティは、
 node.ImageKey もしくは node.ImageIndex
および、
 node.SelectedImageKey もしくは node.SelectedImageIndex
となります。

"Image〜" は通常時に表示される画像を指定します。
"SelectedImage〜" は、そのノードを選択している時だけ表示される画像です。


> プロパティでも全部に表示されてしまいますし、
おそらく、TreeNode に画像の指定を行っていないのでしょう。

ノード側に画像の指定が無い場合には、TreeView 本体の
 treeView.ImageKey もしくは treeView.ImageIndex
および、
 treeView.SelectedImageKey もしくは treeView.SelectedImageIndex
に指定されている画像が、そのノードの規定の画像となります。

0
引用返信 編集キー/
■7345 / inTopicNo.3)  Re[2]: TreeViewのノードにImageListを表示
□投稿者/ さと 一等兵(20回)-(2006/10/07(Sat) 18:52:34)

分類:[C#] 

魔界の仮面弁士さん、レス有り難う御座います!

無事指定したノードに画像を表示させる事が出来ました。

if( tool.現在位置 != tool.保管場所 ){
//node.BackColor = Color.Red;
node.ImageIndex = 1;
node.SelectedImageIndex = 1;
}

> おそらく、TreeNode に画像の指定を行っていないのでしょう。

はい、なにもしていませんでした;
魔界の仮面弁士さんの説明が解りやすく、納得しながら出来ました。

> ノード側に画像の指定が無い場合には、TreeView 本体の〜

ここで、全部に表示されていたんですね;

有り難う御座いました!スッキリしたので気分よく帰宅できそうです^^











0
引用返信 編集キー/
■7346 / inTopicNo.4)  Re[3]: TreeViewのノードにImageListを表示
□投稿者/ さと 一等兵(21回)-(2006/10/07(Sat) 18:53:40)

分類:[C#] 

何度も申し訳ないです;
閉じ忘れました・・・・。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -