子ノードから親ノードのKeyを取得するには?

解決


こあら  2007-06-19 04:32:37  No: 99014

再びお世話になります。

TreeViewで子ノードをクリックした時に、その親ノードのKeyを取得する方法は
ありませんでしょうか。

ご存知の方がいらっしゃいましたら、ご回答の程よろしくお願い致します。


魔界の仮面弁士  2007-06-19 06:12:35  No: 99015

> 再びお世話になります。
隣の.NET掲示板で質問していた「こあら」さんとは同一人物なのでしょうか?
ここは VB2-VB6専用掲示板ですが…。

> TreeViewで子ノードをクリックした時に、
NodeClick イベントですね。

> その親ノードの
Node の Parent プロパティですね。

> Keyを取得する方法
Key プロパティですね。


こあら  2007-06-19 09:07:07  No: 99016

魔界の仮面弁士様、再びお世話になっております。
すみません、隣のこあらと同一です。
VB6でやっておりますもので、こちらで良いのかと・・・場違いでしたか。
すみません!

ご回答いただきありがとうございます。
あぁ、基礎だったですね・・・
知識不足でした。

たて続きにお付き合いいただき、本当に感謝致します!
以後はもう少し、自力で粘ってみます。


魔界の仮面弁士  2007-06-19 10:47:44  No: 99017

> VB6でやっておりますもので、こちらで良いのかと・・・場違いでしたか。
いえいえ、ぜんぜん問題なしです。

「再び」という割には、急に掲示板を移動されていたので、元質問を
見つけられずに、ちょっと戸惑ってしまったという程度です。
場違いではないと思いますよ。

というか、大幅にこっちの勘違いも入っていました。失礼しました。

# こあらさんの、".NET/VB6兼用板"での「VB6 の TreeView の質問」を、
# 別の方の ".NET専用板"での「.NET の TreeView の質問」と混同…。

> あぁ、基礎だったですね・・・
親だけでなく、兄弟、長兄、子供を得るプロパティもあるので、
合わせてチェックしておいてくださいね。


こあら  2007-06-19 17:14:23  No: 99018

> 急に掲示板を移動されていたので・・・
最初の掲示板を利用させていただいた後で、こちらの掲示板に気づきまして
実はこちらで質問すべきだったかと移動しておりました。
気づくの自体遅かったですね。
重ね重ね、お騒がせしております!

> 親だけでなく、兄弟、長兄、子供を得るプロパティもあるので、
> 合わせてチェックしておいてくださいね。

  兄弟:children
  長兄:FirstChild
  子供:child

でしょうか。
TreeViewを使うのは初めてなのですが、家計図のようで面白いですね。
勉強になります。
ありがとうございました!


魔界の仮面弁士  2007-06-19 20:09:24  No: 99019

> でしょうか。
違いますよ。

>  兄弟:children
そもそも Children は Node を返しません。子供の数を返します。
自分の兄弟(同階層の前後のノード)を得るには、Next/Previousプロパティを
使います。
弟を持たないノード(同階層内の末尾ノード)なら、Next は Nothing を返します。
兄を持たないノード(同階層内の先頭ノード)なら、Previous は Nothing です。

>  長兄:FirstChild
FirstChild というプロパティは存在しません。
FirstSibling というプロパティならありますけれどね。(^^;
FirstSibling は "Sibling"(兄弟姉妹) の文字通り、同階層内の先頭ノード、
すなわち、長兄ノードを返します。自分が長兄なら、自分自身が返されます。
また、似たような名前の LastSibling というプロパティもあり、こちらは
末弟ノード(同階層内の末尾のノード)を返します。

>  子供:child
これは正しいですね。
(なお、Children が 0 を返す場合、Child プロパティは Nothing を返します)
Child は、具体的には子階層の先頭ノードを返すので、「長子」というイメージでしょうか。
ちなみに「次子」なら、.Child.Next となります。
「末子」を得たいのであれば、.Child.LastSibling です。

これらの他には、一族の最上位ノードを返す Root プロパティがあります。
最上位ノードには親が居ないので、.Root.Parent は常に Nothing です。

あと、これらのプロパティ(Child, Next 等)は、参照専用プロパティですが、
唯一、Parent プロパティだけは、参照だけでなく Set も可能となっており、
「Set node1.Parent = node2」とすると、node1 が node2 の末子になります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加