在Form1中,当进度条完成时,在timer_tick events'else部分中,以下代码由我编写:
frmLogin login = new frmLogin();
login.Show();
timer1.Enabled = false;
this.Hide();
那么关闭Form1
而不是隐藏Form1
的任何解决方案?
答案 0 :(得分:1)
你有一个叫ApplicationContext
的东西。
像这样使用:
ApplicationContext applicationContext = new ApplicationContext();
FormX formX = new FormX(applicationContext);
applicationContext.MainForm = formX;
Application.Run(applicationContext);
关闭Form1
时,移交MainForm
FormY formY = new FormY(applicationContext);
applicationContext.MainForm = formY;
另一种选择是制作静态ApplicationContext
。这不需要传递它。
答案 1 :(得分:0)
我会从主要表单中做到:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var login=new LoginForm();
if(login.ShowDialog()==DialogResult.OK)
{
// Validation ok
}
else
{
this.Close();
}
}
}
因此,在主窗体显示之前,它会加载并显示LoginForm
。完成后,它会关闭LoginForm
并显示主窗体。