掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ツリービューのノードの表示順序を入れ替えるには? (ID:122687)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
回答ありがとうございます。 検索不足でした。 過去ログを参考に、ノードを新しく作り、移動するノードの要素をコピーし 子ノードの親ノードを新しく作ったノードに書き換えるというやり方を 作ってみました。 しかし、子ノードの1つはちゃんと親ノードに付いて移動するのですが 残りの子ノードが消えてしまいます。 どうも下記ソースの Do While Not c Is Nothing Set c.Parent = m Set c = c.Next Loop が子ノードは複数あるのに1回しかループしていないためと分かりました。 なぜ1回しか回らないのでしょうか? これを回避する方法はどうしたらよいのでしょう。 ’最初に実行するプロシージャ Private Sub Command1_Click() MoveNode TreeView1.Nodes, TreeView1.Nodes(1), TreeView1.Nodes(1).Next End Sub ' ns : TreeView.Nodes ' SrcNd : 移動するノード ' TgtNd : SrcNd移動先の直前のノード(Nothingの時は先頭に移動する) ' Public Sub MoveNode(ns As Nodes, SrcNd As Node, TgtNd As Node) Dim m As Node Dim c As Node If TgtNd Is Nothing Then Set m = ns.Add(SrcNd.Index, tvwFirst, , SrcNd.Text, SrcNd.Image, SrcNd.SelectedImage) Else Set m = ns.Add(TgtNd.Index, tvwNext, , SrcNd.Text, SrcNd.Image, SrcNd.SelectedImage) End If Set c = SrcNd.Child.FirstSibling Do While Not c Is Nothing '<--------ここが1回で終わる Set c.Parent = m Set c = c.Next Loop ns.Remove SrcNd.Key m.Key = SrcNd.Key Set SrcNd = Nothing Set m = Nothing End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.