1
を最大化さIが制約のMaxSizeを有するのWinForm形を有するとき移動。私はボタンを最大限に押すと、このウィンドウは正しいのMaxSizeで、0,0(左上隅)を配置するポップ。フォームが動かないようにする方法はありますか?防止MaxSized C#のWinForm
フォームは(OSによって)移動された後、私は新しい位置を設定することができますが、ユーザーは非常にきれいではありません画面上で飛び出るフォームを、見ることができます。 (ここでコードを投稿するためにFormNameを変更しました)。 SuspendLayoutはここでは役に立ちませんが、必ずしも最大化ボタンを無効にする必要はありません。
void frmWinForm_SizeChanged(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Maximized)
{
var x = ... // some calculated or original x position
var y = ... // some calculated or original y position
WindowState = FormWindowState.Normal;
SetBounds(x, y, MaxSize.X, MaxSize.Y);
}
}
これは本当にうまくいきます。この簡単な回答に感謝します。 –
正常に動作しない、ウィンドウを復元することはできません。 WM_GETMINMAXINFOを代行受信する代わりに、ptMaxPositionの値を変更してください。ヒントの –
@HansPassantおかげで、私はあなたがよくやった、迅速だ – Norman