【发布时间】:2018-06-06 10:50:09
【问题描述】:
我有 2 个表单,Startform 是一个登录表单(Form1)和一个登录后打开的表单,Form2。
登录成功后form2显示。
f2.Show(); //form2 show
this.Hide(); //login(f1) hide
这行得通。
现在我希望,如果我按下 Form2 关闭并再次显示登录页面的红色 X 按钮(右上角)。
我在 Form2 中试过这个:
Form1 f1 = new Form1();
....
...
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
f1.show();
}
但这只是关闭Form2而不打开From1,程序仍在后台运行
【问题讨论】:
-
您需要显示现有的登录表单(您在上面调用
.Hide()的那个)还是新的? -
@EpicKip 我想显示我隐藏的那个
-
@steffen1994 然后将您的 form2 构造函数更改为采用
Form1参数(因此将public Form2()更改为public Form2(Form1 form))。然后在构造函数中将其分配给一个全局值并在其上调用.Show() -
Application.OpenForms[0].Show();请强烈考虑不要求提供登录凭据,您的用户在登录 Windows 时已经提供了这些凭据。您放在上面的任何额外的都很可能存在严重的安全问题,不仅限于暴露密码。 winforms 应用程序与网页不同,您不是在与一个完全陌生的人打交道。
-
@steffen1994 在重复的 Thomas 链接中,这个答案:stackoverflow.com/a/43879608/2885376 就是我的意思
标签: c# formclosing