2

カスタムの閉じる最大化ボタンと最小化ボタンを使用して、独自のプログラムを作成しようとしています(Visual StudioやWord 2013などのように...(境界線のスタイルは「なし」に設定されています))やるべきことは、3 つのボタンを作成することです。1 つは閉じるオプション、1 つは最小化オプション (正常に動作)、もう 1 つは最大化ボタン付きです。最大化ボタンだけでも問題なく動作しますが、標準の Windows ボタンのようにしたいので、フォームが最大化されたときにフォームの以前の状態 (通常) を復元することができます。

this.WindowState = FormWindowState.Normal;

しかし、私の言いたいことが理解できれば、ボタンは 1 つにすべきです。私が試したのはブール値を作成することです。フォームが最大化されている場合(「if」ステートメントを使用)に値がtrueに設定され、フォームが最大化されていない場合(else関数)にfalseに設定されます。最大化ボタンをクリックするとフォームが最大化されるため、ブール値がtrueに設定されますが、もう一度クリックしても何も起こりません! 閉じるや最小化などの他の機能は問題なく機能します。「復元」ボタンも作成しましたが、これは問題なく機能します。

これは私のコードです:

    bool restore;

    private void set_Restore()
    {
        {
            if (this.WindowState == FormWindowState.Maximized) //Here the "is" functions is
            {
                restore = true; //Sets the bool "restore" to true when the windows maximized
            }
            else
            {
                restore = false; //Sets the bool "restore" to false when the windows isn't maximized
            }
        }
    }

    private void MaximizeButton_Click(object sender, EventArgs e)
    {
        {
            if (restore == true)
            {
                this.WindowState = FormWindowState.Normal; //Restore the forms state
            }
            else
            {
                this.WindowState = FormWindowState.Maximized; //Maximizes the form
            }
        }
    }

さて、私は3つの警告を受け取りました.これは私が間違っていると思うものです:

フィールド 'WindowsFormsApplication2.Form1.restore' は割り当てられず、常にデフォルト値 false になります。

boolの「復元」は決して使用されず、常にデフォルト値FALSEになると言っていると思いますが、最大化されたときのset_Restoreのためにそうすべきではありません。

他の 2 つの警告は次のとおりです。

変数 'restore' が割り当てられていますが、その値は使用されていません 変数 'restore' が割り当てられていますが、その値は使用されていません

前もって感謝します。

4

1 に答える 1