tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: TreeViewのツリー構造固定
投稿日: 2009/05/18(Mon) 00:41
投稿者魔界の仮面弁士
> それはノードを”選択”して追加・削除・移動するのではなく、
> 特定のノードを”指定”している状態で追加するプログラムでつまづきました。
選択は、 No8971 で光さん自身が書かれているように、SelectedNode でいけますね。
指定は、 No8972 で私が示したように、Nodes 配下のプロパティを辿って指定します。


> 例えば、下層のノード「XXX2」を指定している状態で追加する。
最初の投稿内容をみると「XXX2」と「XXX2」が混在していたのが気になりますが:

とりあえず、指定方法は幾通りもあります。たとえば、位置で指定するなら、
 N = TreeView1.Nodes(1)
ですし、ノード名(表示名ではなく、TreeNode.Nameのこと)で指定するなら、
 N = TreeView1.Nodes("XXX2")
と書けます(対象ノードが最上位階層にある場合)。

また、下位の層まで辿って探したい、あるいは同名ノードが複数ある場合には、
 Ns = TreeView1.Nodes.Find("XXX2", True)
 If Ns.Length > 0 Then
  N = Ns(0)
 End If
のように書けます。

あるいは、ノード名ではなく、表示名(Textプロパティ)から探したいのであれば、
Nodes プロパティを再帰的に列挙してやれば良いかと。

その他、Nodes.Add するノードを、Dictionary(Of String, Node) 等にて
管理しておく方法なども使えるでしょう。

# これが 2008 なら、LINQ で問い合わせる事もできたのですけれどね…。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。