- ベストアンサー
ツリービューの使い方が・・・
VBのカスタムコントロールはほとんどさわったことがないので、ぜんぜんわからないです。 初心者っぽい質問で申し訳ないのですが、プロセスとプロセスがもっているスレッドを、プロセスID&スレッドIDをキーにツリー構造を持たせたいのですが、ツリービューのツリーへのアクセスのしかたがわかりません。 MSDNライブラリが壊れているようで、ヘルプが出ないのです。 新しいMSDNライブラリ入れてから、トラブル続き。 TreeView1.Nodes.Add , , "キー", "値" TreeView1.Nodes.Add , , "キー\サブキー", "値" じゃなさそうみたいです。 かといってそれぞれのノードが小枝への参照をもっているわけでもないし、小枝を追加するメソッドをもっているわけでもないし。 単純に小枝への追加のしかたが知りたいだけなんですけど・・・。 だれか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>はい、その点はわかっております。 わかってくださったようでうれしいです。 tvwChild の上にカーソルがある状態で「F1キー」を押したら、MSDNに情報が出ませんか? 僕のMSDNは「ツリー ビュー (TreeView) コントロールの定数」というのが開きました。 >インターフェースを作るのが後回しになって、結局内部だけ作って、中途半端な状態で終わっちゃう わかります。その気持ち。。。 よく僕もあります。 僕も内部のパーツから作ります。画面なんてどうにでもなるし、パーツを作りこんでいるうちに最初リストビューにしようと思っていたことが、ツリービューの方がいいかもと思えることもあるので、画面を最初から作るはめに・・・なんてことがないようにしたいですしね。 まぁ何にせよ、がんばってください。
その他の回答 (3)
下記のプログラムを実行してみて下さい。おおまかな組み立てかたは 分かるかと思います。 Dim nodX As Node TreeView1.LineStyle = tvwRootLines 'ツリービューの線のスタイルの設定 Set nodX = TreeView1.Nodes.Add(, , "r", "ルート1") '最初のノード追加 'ルート1の子ノードの追加 Set nodX = TreeView1.Nodes.Add("r", tvwChild, "child1", "子ノード1") Set nodX = TreeView1.Nodes.Add("r", tvwChild, "child2", "子ノード2") 'ルート2と子ノードの追加 Set nodX = TreeView1.Nodes.Add(, , "r2", "ルート2") Set nodX = TreeView1.Nodes.Add("r2", tvwChild, "child3", "子ノード")
お礼
だいたい理解しました。 tvwChild定数が鍵だったんですねぇ。 ありがとうございました。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
Addの文を見てください。 最初にAddしている「会社」以外はtvwChildが、引数に渡されています。 実行してみると、会社にぶら下がります。 それぞれのアイテムが、何にぶら下がっているかを注目してください。 そして各パラメータ値と対比させて見るようにしてください。 tvwChild は 宣言しないでもリストビューのコントロールが使用できるのであれば、リストビューを作成するライブラリに宣言されているので、特にプログラム内部での宣言は必要ありません。 ちなみにtvwChild = 4です。 この部分でエラーが起こるようであれば、もう一度コンポーネントを見直しましょう。 MSDNはネットにもあります。 http://www.microsoft.com/japan/developer/default.asp 「ツリー ビュー (TreeView) コントロールの使い方ツリー ビュー (TreeView) コントロールの使い方」 上記のカギカッコ内の文字列をキーにして、検索をしてみてください。 あのサンプル以上にわかりやすく説明することは、ちょっと無理です。。。 >新しいMSDNライブラリにはその部分が抜けているのではないか(リストにない)という結論に至った そんなことはないと思うのですが。。。貼り付けたコントロールをクリックしアクティブ状態にして、[F1キー]を押したら、よほどマイナーなコントロールでない限り、そのコントロールのヘルプが出ます。 それはご存知ですか? 勉強方法はいろいろありますが、主にサンプルがあったときは、それをコピってプロジェクトを作成し、いろいろ改造してみることが必要です。さっきのサンプルをいろいろ改造してみましたか? もめる気はないですが、、、 あなたの気持ちもわからないではないけど、あの書き込みからはTodoさんが言うのも最もな気がします。 >初心者っぽい質問で申し訳ないのですが、 本当は自分は初心者ではないと言っているように聞こえます。 >プロセスとプロセスがもっているスレッドを、・・・・ やっていることは、VBをする人の中で、高度なことです。それをすでにしていますね。 このことから、それまでの過程がよくわからないので、言語上級者がヘルプを調べるのが面倒になって回答を求めてるようにとることもできます。 もう一度言いますが、、、もめる気はありません。。。 しかし僕自身もプロセスやスレッドの概念を持った方であれば、あのサンプルを調査したら理解できるように思います。 とりあえず、改造を行ってみて、どういう風にわからないかを指摘してもらえれば、それなりの回答を得られると思います。
お礼
すみません。 tvwChildが定数だとは気が付きませんでした。 オブジェクトブラウザはかなりのぞいたんですが、定数までは気が回りませんでした。 オブジェクトブラウザでのメソッドのプロトタイプがバリアント型だったので、何型がわからなかったのです。 >高度なことです プロセスとスレッドをクラスにしたり・・・。 自分でもコアなことやってると思ってます。 さて、知識も付いてきたことだし、そろそろ実用的なプログラムを作ろうかと思ったら、インターフェース部分の知識が極端に抜けてまして。 最近どうも、インターフェースを作るのが後回しになって、結局内部だけ作って、中途半端な状態で終わっちゃうことが多かったもんで。 >本当は自分は初心者ではないと 他のことはわかるのに、インターフェースの知識だけ欠けて、みたいな意識があって、このような不快にさせる表現を使ってしまったみたいです、すみません。 >もめる気はありません はい、その点はわかっております。 一応努力したという意思表示のつもりです。 いろいろつきあってくださってどうもありがとうございました。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
検索を活用しましょうね。 つい最近、追加/削除のサンプルを載せました。
お礼
・・・いえ、これは検索して見たのですが、これは理解できませんでした。 >.Add "会社", tvwChild, "経理部", "経理部" >.追加 "親となる物のキー", 自分は子, "キー文字列", "TreeViewに表示するテキスト" この、"自分は子" ってのがわかりません。 tvwChildが以前にどこで宣言されているのかがわかりません。 型なども。 そのへんご指導おねがいします。
お礼
いろいろありがとうございました。 >わかります。その気持ち。。。 同じような方がいて嬉しいです。 また何かあったら、おねがいします。