[英]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.