あなたのフォームは、いくつかのデフォルトサイズの値で始まり、ダブルクリックがちょうど2つの状態の間でトグルしていることを覚えておく必要があります。
あなたの正常な状態の中でフォームが、それは(あなたのケースのデフォルトで)最後だ取得しますが、あなたがオーバーライドすることができますサイズ:
Width = Screen.PrimaryScreen.Bounds.Width;
Height = Screen.PrimaryScreen.Bounds.Height;
もう一つは、あなたのアプリケーションは、(私が覚えているから)開始位置と呼ばれるもののデフォルトを持っているということです画面の中央に、あなたが使用してそれを変更することができます。
Form.StartPosition = new Point(0, 0); // top-left corner
今、あなたはあなたのapplicaitonにしなければならないすべては、ウィンドウ状態間の切り替えのためにチェックすることです。最も簡単な方法は、WndProc
を使用してthis msdn pageに記載されているメッセージを待つために、次のようになります。
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MAXIMIZE = 0xF030;
const int SC_RESTORE = 0xF120;
if (m.Msg == WM_SYSCOMMAND)
{
switch((int)m.WParam)
{
case SC_RESTORE:
// your window was restored (double clicked on the command bar)
// set it's window state back to maximize or do whatever
break;
case SC_MAXIMIZE:
// your window was maximized .. no actions needed, just for debugging purpose
break;
}
}
base.WndProc(ref m);
}
ただ、フォーム上さらにonResizeイベントハンドラを固執し、それを戻します。なぜあなたがユーザーを苛立たせようとしているのか、不思議に思う人もいます。 –
@TonyHopkinsonそれでは、イベントハンドラコードで "WindowState"を "Maximized"に設定していますか? ねえ、誰かを苛立たせていますか? – hecate
@stuartd実行時に最大化されたフォームのサイズを "MinimumSize"プロパティに設定することを意味しましたか? – hecate