1
Screen scr = Screen.GetWorkingArea(this);
this.MaximumSize = new System.Drawing.Size(scr.Width, scr.Height);
this.Size = new System.Drawing.Size(scr.Width, scr.Height);
Console.WriteLine(this.Size + " " + this.MaximumSize);
しかし、私が手出力は意味がありません(第1の出力はありますthis.Size
第2の出力は)this.MaximumSize
です。それは、フォームのサイズが最大サイズよりも大きいことである方法
{Width=1680, Height=1050} {Width=1680, Height=1010}
?
EDIT 1:scr
の代わりにScreen scr
を入れることを忘れてしまいます。
このコードの場所は非常に重要です。わかりません。しかし、あなたはあまりに早くそれをやっているという高い確率があります。どの時点で実際にフォームサイズを設定しているのではないのですが、WinformsはClientSizeについて多くのことを気にしています。実際の外部フォームのサイズは、枠線のサイズとタイトルバーによって異なります。特に後者はユーザの好みに大きく依存する。実際のサイズは、ウィンドウが作成されるときに決定されます。この時点で、LoadSizeイベントを使用するいくつかの理由の1つであるMaximumSizeが使用されます。 –
@HansPassant最大化と最小化を最小限に抑えるためのボタンを使用してカスタムフォームを作成しました。この場合、フォームのサイズをトリガするためにクリックイベントを使用しました。 –
確かに、それはそれを行います、ターゲットサイズは、ウィンドウが標準的なクロムを持っているという前提でClientSizeから計算されます。これは、ウィンドウが実際に作成されるときにソートされます。 –