我有两个名为frmRegistration
&我在 c#项目中的frmMain
。
我已将frmRegistration
设为我的开始表单
用户以frmRegistration
形式输入数据&按提交按钮进行注册。然后,我要关闭frmRegistration
形式&向用户显示frmMain
表单
我正在尝试使用Dispose()
的{{1}}方法。但是,当我使用此方法时,它会处理我的所有应用程序执行,因为frmRegistration
是启动形式。
我不希望这种情况发生。任何人都可以解决这个问题吗?
感谢。
答案 0 :(得分:3)
使用Show()
和Hide()
方法。
private void btnSubmit_Click(object sender, EventArgs e)
{
...
var frm = new frmMain();
frm.Location = this.Location;
frm.StartPosition = FormStartPosition.Manual;
frm.Show();
this.Hide();
}
<强>更新强>
如果您不想在内存中使用frmRegistration,请以主窗体启动程序并将其添加到MainForm的Shown
事件中:
var frm = new frmRegistration();
frm.Location = this.Location;
frm.StartPosition = FormStartPosition.Manual;
frm.FormClosing += delegate { this.Show(); };
frm.Show();
this.Hide();
现在您可以关闭注册表单并自动返回主表单。
答案 1 :(得分:2)
尝试将frmMain设置为启动表单并最初隐藏它,显示frm注册,执行您必须执行的操作,然后处理它。
答案 2 :(得分:0)
您还可以使用Program.cs
功能更改Main()
主要课程以开始frmRegistration
,然后在肯定DialogResult
或其他检查后更改frmMain
} - 作为主要形式和消息循环。
答案 3 :(得分:0)
至少有两种选择: 1.将您的启动表单转换为单例 当你需要隐藏它时,称之为隐藏方法
2.拥有新的不同启动表单,将其称为MainApp表单或其他任何形式,将其设置为不可见,您可以使用其他非启动表单执行任何操作。