如何同时隐藏2个表单?

问题描述 投票:0回答:1

我的项目中有 3 个表格:

  • 登录表格
  • 仪表板表格
  • 更改密码表格

这只是一个小项目,因此没有什么大的功能需要呈现。不管怎样,登录是第一个出现的表单。用户登录后,登录表单将隐藏并显示仪表板。在仪表板中,有一个更改密码选项,可以打开另一个表单,但不会隐藏仪表板。如果用户决定更改密码,将出现一个消息框,基本上表示用户已成功更改密码,并可以选择是否留在仪表板或通过 MessageBoxButtons.YesNo 返回登录表单。

这是我使用的代码:

DialogResult dial = MessageBox.Show("Password successfully changed.\n\nDo you want to return to login page?", "Success", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (dial == DialogResult.Yes)
{
this.Hide();
Form2 frm2 = new Form2();
frm2.ShowDialog();
Hide();
Form1 frm1 = new Form1();
frm1.ShowDialog();
Close();
}
else if (dial == DialogResult.No)
this.Hide();

if (dial == DialogResult.Yes)
条件不起作用。我试图同时隐藏 2 个表单(更改密码和仪表板)并显示登录表单。有什么办法可以达到这个目的吗?

c# winforms
1个回答
0
投票

如果您为表单命名,将会有所帮助,当您在 6 个月内重新访问此代码时,您会感谢自己。

if (dial == DialogResult.Yes)
{
// Hide this Dashboard
this.Hide();

// Instantiate frmLogin
frmLogin frmL = new frmLogin();

// Show the login form & force users to login successfully
frmL.ShowDialog();

//Confirm the login was success or quit the app if the user cancels, eg
if (frmL.Tag != "1")
{ 
  Application.Exit(); 
}

// Show the Dashboard again.
this.Show();
}
© www.soinside.com 2019 - 2024. All rights reserved.