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