簡體   English   中英

如何使關閉按鈕作為最小化工作:C#Winforms

[英]How to make Close button work as Minimize: C# Winforms

如何在我的應用程序中創建(默認)“ 關閉”按鈕(位於右上角),將其作為最小化工作。 實際上我想在點擊交叉符號時最小化應用程序,但是當我在菜單選項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();
    }

但是現在,當我單擊“ 退出”菜單選項時,表單也被最小化,而不是退出。

有人可以幫忙嗎?

在決定最小化窗口之前,檢查FormClosingEventArgs.CloseReason是否等於CloseReason.UserClosing 或者,比較CloseReason.ApplicationExitCall

CloseReason的文檔:

會員

...

UserClosing

用戶通過用戶界面(UI)關閉表單,例如單擊窗體窗口上的“關閉”按鈕,從窗口的控制菜單中選擇“關閉”,或按ALT + F4。

...

ApplicationExitCall

調用Application類的Exit方法。

嘗試這個

編輯可以使用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; 
 } 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM