在我的项目中,有两种形式frmLogin
和frmMain
。从frmLogin
成功登录后,我通过执行以下操作向用户显示frmMain
表单:
在frmLogin
形式的button_click
事件中:
frmMain main = new frmMain();
main.Show();
this.Hide();
在
frmMain
中,当用户注销时,我想显示相同的frmLogin
形式(而不是实例)。这该怎么做?我尝试了以下代码:(创建了我不想的
frmLogin
的另一个实例)在
frmMain
形式的button_click
事件中:if (MessageBox.Show("Do you really want to log out?", "Alert", MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
{
this.FormClosing -= frmMain_FormClosing;
//
Process p = new Process();
p.StartInfo.FileName = Application.ExecutablePath;
p.Start();
//
this.Dispose();
}
我也尝试使用
internal
说明符,但没有用。编辑:作为一名实习生,我不允许使用
Static
关键字和更改program.cs
。如果上述方法要求使用受限方法(我已经提到过),那么请建议我使用另一种方法。 最佳答案
您要做的就是将登录页面分配为owner of nextform to be opened
在您要打开nextForm的登录页面调用以下函数中
void openNextForm()
{
Form f2 = new YourForm();
f2.owner=this;
f2.Show();
this.Hide();
}
在您的nextForm(例如mainForm)中,在您单击按钮之后单击
void ButtonLogOut_Click(object sender, EventArgs e)
{
this.Owner.Show();
this.Hide();
this.Dispose();
}
关于c# - 显示以前隐藏的相同表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13226393/