タイトル : 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 で問い合わせる事もできたのですけれどね…。 |