繁体   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