2009-07-09 5 views
3

私は1100x400のデフォルトサイズのWindowsフォームを持っていて、のコントロールはTopLeftBottom,Rightに固定されています。はどのようにして、その親フォームに子コントロールを再アンカーを作るのですか?

解像度が1100x400より大きい画面でフォームのサイズを変更すると、正常に動作し、アンカーが正常に機能し、DataGridViewコントロールのサイズが期待通りに変更されます。

解像度が800x600の画面でフォームを起動すると、フォームが切り捨てられ、800x600に収まるようになります。 DataGridViewが遮断され、完全に見ることができない - それは右のフォームをオフに出血、それは右のアンカーを尊重していません。このような状況では、フォームのサイズを変更するいくつかの理由でアンカーの設定を尊重しません:フォームのサイズが変更されたときDataGridViewコントロールがサイズ変更されません。

子供がDataGridViewコントロールをフォームの両側に固定するようにプログラムで(サイズ変更イベントなどで)方法がありますか?

私はすでにPerformLayoutを呼び出して試してみたし、フォームのResizeイベントでリフレッシュが、それはそれは、かなり冗長ではないですね。私は、フォームののminimumSize/MaximumSizeのでプレイすることをお勧めいたしますと

を制御します

+0

>>私はすでにPerformLayoutを呼び出してみましたし、フォームのサイズ変更イベントでリフレッシュが、それはだきましたむしろ冗長ではありませんか? –

+0

愚かな質問のようですが、コトロールの最小幅に何か設定されていますか? (私はそう、私はそれはあなたがDataGridViewのを行うか、できないものですかどうかを確認することができない私のdevのボックスではないので、私は別のUIフレームワークを考えていた場合にだけ、私を無視します。) –

答えて

0

我々は通常、我々は、各コントロールの少なくともごく一部を見ることができる値にフォームとコントロールのためのminimumSizeを設定します。コントロールを使って便利な作業をすることができないときに、フォームをサイズにリサイズすることはできません。

フォームのMaximumSizeについては、この値をForm_Loadに設定することをお勧めします以下、現在の画面解像度や現在の作業領域(タスクバーのない画面領域である、など、ウィンドウをドッキング)

see 
    Screen.PrimaryScreen.Bounds 
    Screen.PrimaryScreen.WorkingArea 
関連する問題