C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: TreeView で SingleExpand


(過去ログ 17 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■6624 / inTopicNo.1)  TreeView で SingleExpand
  
□投稿者/ 春紫苑 (3回)-(2007/08/21(Tue) 00:34:19)

分類:[.NET 全般] 

System.Windows.Forms.TreeView クラスで、選択したノード以外を閉じる
SingleExpand を行いたいのですが、何か良い方法は無いでしょうか?

MFC とかを使っていたころはスタイルを指定することで可能だったのですが、
.NET Framework の TreeView ではそれらしいプロパティもありませんし。
SetStyle メソッドで指定できるスタイルは MFC のそれとは違います。
Expand と CollapseAll を使って自力で頑張るしかないのでしょうか…。

良い方法をご存知の方がいたら、教えて頂けませんか?

引用返信 編集キー/
■6634 / inTopicNo.2)  Re[1]: TreeView で SingleExpand
□投稿者/ Hongliang (170回)-(2007/08/21(Tue) 12:26:35)
Hongliang さんの Web サイト
・TreeView を派生させて CreateParams をオーバーライドし、Style に TVS_SINGLEEXPAND を追加する。
・GetWindowLong(Ptr) & SetWindowLong(Ptr) で GWL_STYLE に TVS_SINGLEEXPAND を追加する。
いずれかで可能かと思います。

// でもなんかこれめちゃくちゃ癖ある挙動を示すなー@XP SP2
引用返信 編集キー/
■6675 / inTopicNo.3)  Re[2]: TreeView で SingleExpand
□投稿者/ 春紫苑 (4回)-(2007/08/21(Tue) 22:24:09)
No6634 (Hongliang さん) に返信
> ・TreeView を派生させて CreateParams をオーバーライドし、Style に TVS_SINGLEEXPAND を追加する。
> ・GetWindowLong(Ptr) & SetWindowLong(Ptr) で GWL_STYLE に TVS_SINGLEEXPAND を追加する。
> いずれかで可能かと思います。
>
> // でもなんかこれめちゃくちゃ癖ある挙動を示すなー@XP SP2

ありがとうございます。
おかげで実装できました。

しかし、この機能を有効・無効にするプロパティがあっても良さそうなのに。
マイクロソフトも気が利きませんね。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -