タイトル一覧   関連タグ: Win C#
タグ:Win C# タイトル:TreeVIewでのノードの指定のやり方
1 2
1:  お名前:神威 久士 2005/02/04 15:11:25

TreeViewのノードなんですが、
子ノードを指定する時に、
TreeView1.Nodes(0).Nodes(2)などとしますが、
他に方法は無いのでしょうか?

別名みたいなのを付けて、
それで指定できる方法などは無いですか?
2:  お名前:中 博俊 2005/02/04 15:17:53

TreeViewNode tvn = TreeView1.Nodes(0)
tvn.Nodes(2)

別名ですけど?

#そういう意味じゃなく?
3:  お名前:神威 久士 2005/02/04 15:35:42

メールソフトのような使い方をしたいんです。

ノードをクリックすると、
それに対応したデータが参照される感じです。
データ自体にどこのノードの値なのかを
持たせたいのです。

可能でしょうか?
4:  お名前:みゃみゅ玉子 2005/02/04 15:37:25

TreeView1.SelectNode("/aaa/bbb")
みたいな感じでしょうか?

TreeView1.Nodes("aaa").Nodes("bbb")
ですかね?
5:  お名前:神威 久士 2005/02/04 15:53:35

> TreeView1.SelectNode("/aaa/bbb")
そうです、こんな感じです。

> TreeView1.Nodes("aaa").Nodes("bbb")
これだと階層が深いところは、
それだけ数が増える事になりますから、
こういう事では無いです。

6:  お名前:katsu 2005/02/04 16:12:37

たとえば、私が使っているサードパーティ製のコントロール(NetAdvantage2004 の UltraWinTree)の話ですが

TreeView1.Nodes.Add("KeyName1","ノード0のテキスト")

としてノード追加したら、

Node = TreeView1.GetNodeByKey("KeyName1")

で、直接そのノードに移動できますが、こういう動きを求めているのでしょうか?

標準のTreeViewではできそうもないですね。


7:  お名前:神威 久士 2005/02/04 17:08:29

そういった動作だったんですが、
標準のTreeViewでは出来ないのですね。
んー。どうしたものか…。

中 博俊さん、みゃみゅ玉子さん、katsuさん、
有難うございました。
8:  お名前:みゃみゅ玉子 2005/02/04 17:12:45

みゃみゅ玉子です。

> ノードをクリックすると、
> それに対応したデータが参照される感じです。

でしたら、Node.Tagに参照したいオブジェクトを入れてしまう方法はいかがでしょうか?
クリックしたデータを取得することぐらいならば、それでOKだと思います。
# サンプル作ってみました。
# http://www.ailight.jp/blog/myamyu/articles/4178.aspx

メーラーみたいなものだったら、Tagに配列を入れてあげればいいのかなぁ・・・と思います。

でも
> TreeView1.SelectNode("/aaa/bbb")
とはちょっと違いますね。(^^;

9:  お名前:中 博俊 2005/02/04 17:29:28

というかMapに
map("/aaa/bbb") = TrereView.Node(0).Node(1)
って入れておけばいいでしょ?

10:  お名前:神威 久士 2005/02/04 18:22:15

>みゃみゅ玉子さん
うわぁ…わざわざサンプルまで作って頂いて、
申し訳ないです。参考にさせて頂きます。
有難うございます。
1 2
お名前
メッセージ
次回のために入力情報を記録