• ベストアンサー

ツリーでのアイコンの設定

C++Builder でツリービューを使ってるのですが、 各ノードにアイコンの設定ができません。 私がしたいのは、・・・ 1、クリックした時のアイコンを違うものにしたい。 2、好きなアイコンを選べるようにした。 以上です。 どなたか、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#15691
noname#15691
回答No.2

>各ノードにどうやって設定するのですか? >つまり、コードのみでやるのでしょうか? 1~3は理解できたものとして説明します。 その1 ツリーの構造が設計時に決まっている場合 ・ツリービューを右クリックして「項目の設定」をクリックする。 ・「新規作成」をクリックしてキャプションを入力する。 ・「イメージインデックス」と「選択時インデックス」にTImageList内のイメージ番号を設定する。 ・「新規作成」と「サブアイテムの作成」を繰り返して望みのツリーを作る。 ・「ok」をおす。 その2 実行中にツリーを作る場合 何もない状態から1個のノードを作ってイメージを設定するには、 TTreeNode* node; node = TreeView1->Items->Add(0, "最初のノード"); node->ImageIndex = 0; node->SelectedIndex = 1; とします。 あとは、AddやInsertメソッドを繰り返してツリーを作ります。

その他の回答 (1)

noname#15691
noname#15691
回答No.1

1 TImageListコンポーネントを用意する。 2 1の中にイメージを入れる。 3 1をTTreeViewのImagesプロパティにセットする。 4 各ノード(TTreeNode)のImageIndexプロパティに1内の画像番号を代入する。   これが、選択されてないときの画像 5 各ノード(TTreeNode)のSelectedIndexプロパティに1内の画像番号を代入する。   これが、選択されたときの画像 実行中にノードが変化する場合は、挿入したノードに対して4と5を繰り返す。 実行中にイメージが変化する場合は、1内の画像を変えるか、4や5の値を変化させる。 以上です。

yama888
質問者

補足

すみません。初心者なのでもう少し、教えてください。 各ノードにどうやって設定するのですか? つまり、コードのみでやるのでしょうか?

関連するQ&A

  • C++Builder 6でツリービュー(初心者)

    C++Builder 6のツリービューで、任意の位置に ノードを挿入するにはどうすれば良いのでしょうか? indexを使って任意の位置の削除はできるのですが、・・・ どなたかお願いします。

  • ツリービューでクリック時にアイコンを変化させる方法

    ツリービューでノードの複数選択ができないので 選択されたノードのアイコンの切替を行い 複数選択されたように見せかけるという処理を行っています。 しかし、 ノードをクリックされた時のみ変更されればよかったのですが、 ダブルクリックでノードを開いた場合、クリック時のイベントが発生し アイコンが一瞬変更されてしまいます。 今ではクリックされてから一定時間以内にダブルクリックのイベント が発生しなかった場合のみアイコンを変更していますが、 その場合変更されるまでの反応が遅くなってしまいます。 クリックした時のみアイコンを変更される よい処理法があったらお教え下さい 宜しくお願いします。

  • VB6.0ツリービューについて

    現在、VB6.0で開発をしております。 その中で、ツリービューを使用しています。 で、ツリービューのノードを設定してある状態で、ユーザがクリックしてノードのひとつを選択するのではなく、プログラムからあるひとつのノードを選択状態にするにはどうすればよいでしょうか? ご教授いただけますでしょうか。よろしくお願いします。

  • C#のツリービューでツリーノードとデータの関連付け

    こんにちは。 C#でツリービューの操作をしています。 すでに階層構造を持つデータがあります。これをツリービューに表示させようとしています。 TreeNode treeNodeFruits = new TreeNode("果物"); としてツリービューに追加してあげると普通に表示できますが、このままだと独自データと関連付けがされていないため、ノードをクリックした際に何もできません。 C++ではHTREEITEMのlParamにユーザーデータのポインタをセットできますが、C#ではツリーノードに関連付けできそうな項目が見当たりません。 C#ではツリーノードと独自に持つデータとの関連付けをどのようにすればよろしいのでしょうか?

  • ツリービューを閉じさせたくない。

    いつもお世話になっております。 現在、WIN2000(sp4) SQLServer2000(sp3) で開発をしています。 ツリービューそのものの理解不足かもしれませんが、もしご存知でしたら教えて下さい。 ツリービューでルートのノードを軽く2回クリックすると、エクスプローラーを閉じる時のように、ツリーが閉じますが、これを閉じないようにする方法はないでしょうか? 宜しくお願い致します。

  • ツリービューで、画像管理したいのですが・・・・

    ツリービューで、画像や、テキストをを管理したいのですが、 ツリービューのノードに画像や、テキストを入れることが出来るのでしょうか? ツリービューのノードをクリックして選択した場合、 ピクチャーボックスやテキストボックスに、画像やテキストを表示したいのですが、 どうすればいいのか教えて下さい・・・お願いします。

  • C# ツリービューの使い方

    現在、Microsoft Visual C# 2008 Express Editionでプログラムを作成しているのですが、ツリービューの使い方がよくわかりません。 具体的には、ツリービューとリストビューを左右に並べて、ツリービューのノードをクリックしたときに、その子ノードをリストビューに表示したいと考えています。 そこで、 ツリービューのNodeMouseClickイベントで foreach ( TreeNode child in this.treeView1.SelectedNode.ChildNodes ) { //リストにノードを表示する } と記述したのですが、 「'System.Windows.Forms.TreeNode' に 'ChildNodes' の定義が含まれておらず、型 'System.Windows.Forms.TreeNode' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」 というエラーが発生しました。 これを解決するにはどうすればいいのでしょうか?また、私が実装しようと考えている機能を、ツリービューとリストビューを併用した方法以外でより効率的にかけたりしますか? C#に詳しい人、回答よろしくお願いします。

  • ツリービューのノードを閉じた時のイベント

    VB6でツリービューを利用したプログラムを組んでいます。ツリービューのイベント処理において、ツリービューのノードを展開した時には、Expandイベントで取得することが可能だと思うのですが、ノードを閉じたときのイベントは、取得することができるのでしょうか?

  • VisualBasic.net(2008) ツリービュー チェック

    VisualBasic.net(2008)のツリービューのチェックボックスについて質問させていただきます。 ツリービューのチェックボックスをクリックしたときにそのクリックした親ノードの下にある子ノードも連動してチェックを付けたいのですが 自分なりググってみたんですがVisualBasic.net(2008)となると2005と2003のプロパティやらなんやらが変わってしまうので結局できませんでした。

  • ツリービューのノードをダブルクリックしたことを判断させるには

     VBにて、ツリービューのノードをダブルクリックしたときにこうする、というような処理をさせるにはそうすればいいんでしょうか。  TreeView1_NodeClickというのはありますが、ダブルクリックに関してはDblClickだけしか存在せず、どのノードを選択したかを取得できません。  どなたか、TreeView1_NodeClickのようにノードをダブルクリックした時に限り、そのノードを取得して処理をさせるというような方法を教えてください。  よろしくお願いします。

専門家に質問してみよう