【发布时间】:2015-07-29 19:12:53
【问题描述】:
这可能是一个标准问题。我已经阅读了很多关于此的文章,但没有人指出我具体遇到的问题。
我正在开发一个 WinForm 并有一个在启动时加载的“主菜单”表单。在这个主要中有几个按钮,可以打开程序的各个模块(其他形式)。
我可以打开表单没有问题,可以关闭它并重新显示主表单没有问题。问题在于当用户点击控制框中的 (X) 时,应用程序不会退出,因为主窗体仍然存在,但被隐藏了。我知道我可以将 application.exit() 放在表单的关闭事件中。但是,如果我有一个关闭表单的按钮并想要取消隐藏主表单,则应用程序将由于 formclosure 事件而关闭。
谁能帮我理解这个原则。我不认为它应该像我认为的那样难,我真的不想使用面板。
提前致谢。
-约瑟夫
以下代码根据下面提供的答案解决了问题
private void btnHome_Click(object sender, EventArgs e)
{
Form f1 = Application.OpenForms[0];
f1.Visible=true;
this.Close();
}
private void frmCostControlMain_FormClosed(object sender, FormClosedEventArgs e)
{
Form f = Application.OpenForms[0]; // The main form
if (f.Visible==true)
{
f.BringToFront();
}
else
{
Application.Exit();
}
}
【问题讨论】:
-
我很难理解您的问题。您能否发布一些代码或图形来说明您的问题
-
if (f.Visible==true)与if (f.Visible)相同,因为f.Visible已经是一个布尔值。将布尔值与true进行比较会再次产生相同的布尔值。这就像写y = 1 * x;而不是写y = x;。 if 语句不需要比较,只需要一个布尔值。任何产生布尔值的表达式都可以。 -
谢谢,我会相应调整