2016-06-22 5 views
-1

DisplayRectangleの幅がClientRectangleよりも大きく、DisplayRectangleがClientRectangleと等しくなるように、水平スクロールバーを持つC#パネルがあります。 PanelをDisplayRectangleの正しいサイズに戻す方法を教えてください。私はそれを使って自動的にパネルをスクロールし、パネルの内容全体のスクリーンショットを撮ります。パネルのDisplayRectangleが小さすぎて、ClientRectangleと一致しません。

Rectangle dispRect = panel.DisplayRectangle; 
Rectangle cRect = panel.ClientRectangle; 

残念ながらdispRect == cRect。

+1

どのGUIフレームワークを使用していますか?あなたが知る必要があるのは正確に何ですか?ユーザーにディスパッチされるウィンドウのサイズ? – pijemcolu

+1

この質問には何か怪しいものがあります。 DisplayRectangleがClientRectangleと等しい場合、パネルはスクロールバーを表示しません。スクロールバーは、DisplayRectangle> ClientRectangleの場合にのみ表示されます。クリスタルボールは実際にパネルにHScrollBarをドロップしたと言います。まあ、しないでください。 –

+0

私はWinFormsを使用しています。奇妙なもう一つのことは、HScrollがfalseでHorizo​​ntalScroll.Visible == falseであることです。フォームを見ると、水平スクロールバーがあります。また、PanelにはAutoScrollがtrueに設定されています。私はInvalidate()を呼び出して、DisplayRectangleに正しいサイズを取得しようとしましたが、サイズは変更されません。私は、Hansが真実かもしれないと言ったように、HScrollBarをパネルにドロップしていません。私は、パネルのフルサイズを取得しようとしていますが、現時点では、表示されるサイズのみを返します。パネルにDisplayRectangleを再計算させる方法はありますか? – Dan

答えて

0

問題はありませんでした。間違ったPanelが基本クラスから返されていました。私が必要だったのは、上書きされたPanelでした。

関連する問題