2012-03-08 3 views
0

私はTreeViewで "AutoSize"オプションを持っていませんが、私はオブジェクトの全体の高さと幅を知る必要があります。 TreeViewパネルのサイズは、コンテンツが参照されるサイズと重なるときにスクロールバーを表示するように定義することしかできません。Windowsフォームでツリービューのフルサイズを取得するにはどうすればよいですか?

実際に表示されるコンテンツの大きさを知る方法はありますか?

は、コンテンツエリア(拡大していますものだけ)の絶対下を知りたい場合は、あなたが目に見える高さを取得するために、バウンドプロパティでNodesプロパティを使用することができます

答えて

2

ありがとうございます。

TreeNode tn = tv.Nodes[tv.Nodes.Count - 1]; 
while(tn.IsExpanded) 
    tn = tn.Nodes[tn.Nodes.Count - 1]; 
return tn.Bounds.Bottom; 

適切なエラーチェックが必要です(実際にはTreeViewはHASノードなどです)。幅については、私がどのように行ったか正確に覚えていない。ただし、TreeViewのBoundsプロパティ自体を使用することができます(テストが必要な場合があります)。私は、AutoSizing TreeViewを持っていない同様の状況がありましたが、それはパネルに含まれており、塗りつぶされていたので、Expand/Collapseのツリービューのサイズを変更してスクロールバーを自分で処理する必要がありました。

+0

実際、私の状況です!私はこれを試して、フィードバックを返します。ありがとうございました! – thiagoprzy

+0

それぞれのボトム境界を追加する必要があるかどうか覚えていませんが、少なくともこれが正しい軌道に乗ります。 – SPFiredrake

+0

まあ、私はあなたの解決策を正確には使用しませんでしたが、私の場合は本当に特定のものだったので私はここに入れませんが、 "境界"データを使ってすべての高さと幅を取得し、ネストされたLINQでこれを明確にしていただきありがとうございます! – thiagoprzy

関連する問題