- - PR -
TreeViewの展開状態を初期に戻す
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-01-30 00:33
お世話になります。VisualStudio2005でWeb開発を勉強しております。(VB)
掲題について質問させていただきます。 データベースからデータを取得してツリーを作成しており、 ExpandDepthプロパティを「3」にしています。ノードを展開したときに、 動的に追加するようPopulateOndemandの設定をしてあります。 上記のツリーがどのように展開されようと、ボタンを押すと 初期の展開状態(Expanddepthが3の状態)に戻したいのですが ボタンクリック時のイベントにどのように記載すればよいでしょうか。 今まで調べた結果としては、以下のようなFor each文で全てのNodeについて 階層を調べて、展開・折りたたみする、というようなものなのですが もっと簡単に実現する方法がありましたら、よろしくお願いいたします。 Dim e as Treenode for each e in Treeview1.nodes if n.Depth = 0 then e.Expand() else e.collapse() End if next | ||||||||
|
投稿日時: 2008-01-30 14:38
提示されたコードを見た限りでは、他にも幾つかの展開・縮小のコードを記述してるように思えますね。。。
(提示コードではルートノードしか展開されていないので) 下記の様にコーディングしてみてはどうでしょう?
初期展開に戻したい位置では、下記の様に呼び出してください。
【編集】 旧:If (node.Depth < depth) Then 新:If (node.Depth < depth Or depth = -1) Then ExpandDepth値が初期値(-1:全展開)の場合に対応したコードに修正 [ メッセージ編集済み 編集者: くまっち 編集日時 2008-01-30 15:10 ] | ||||||||
|
投稿日時: 2008-02-09 00:31
回答ありがとうございました。
時間がかかってしまいましたが、教えていただきましたコードを理解 できました。実際にプログラムの中に記載して動作を確認しました。 (ご指摘がありましたとおり、最初のコードでは一番上の階層しか展開できていませんでした。) お世話になりました。 |
1