2

アプリケーションで(デフォルトの)閉じるボタン(右上隅)を作成して、Minimizeとして機能させるにはどうすればよいですか。実際には、クロスシンボルをクリックしてアプリケーションを最小化したいのですが、メニューオプションExitをクリックするとアプリケーションを終了します。

閉じるボタンをクリックしたときにフォームを最小化するために、次のコードを作成しました。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (minimize_on_close == "Yes")
        {
            e.Cancel = true;
            this.WindowState = FormWindowState.Minimized;
        }
    }

メニューオプションから終了をクリックすると、アプリケーションを終了するためのこのコードを記述しました。

private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

しかし、今、[終了] メニュー オプションをクリックすると、フォームも最小化され、終了しません。

誰でも助けてもらえますか?

4

2 に答える 2

3

これを試して

編集Resizeイベントを 使用してそれを行うことができます。

private void Form1_Resize(object sender, EventArgs e) 
  { 
  if (this.WindowState == FormWindowState.Minimized) 
  this.Hide(); 
  }

次に、FormClosingイベントを使用して閉じるをキャンセルし、以下のようにフォームを最小化します

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
if (e.CloseReason == CloseReason.UserClosing) 
 { 
  e.Cancel = true; 
  this.WindowState = FormWindowState.Minimized; 
 } 
}
于 2013-03-17T09:12:19.597 に答える
2

ウィンドウを最小化するかどうかを決定する前に、FormClosingEventArgs.CloseReasonが と等しいかどうかを確認してください。CloseReason.UserClosingまたは、 を比較しCloseReason.ApplicationExitCallます。

のドキュメントからCloseReason:

メンバー

...

ユーザー閉鎖

ユーザーがユーザー インターフェイス (UI) を介してフォームを閉じようとしています。たとえば、フォーム ウィンドウの [閉じる] ボタンをクリックするか、ウィンドウのコントロール メニューから [閉じる] を選択するか、ALT + F4 を押します。

...

ApplicationExitCall

Application クラスの Exit メソッドが呼び出されました。

于 2013-03-17T09:09:37.167 に答える