如何关闭Form1并打开Form2

时间:2014-01-07 13:31:51

标签: c#

在Form1中,当进度条完成时,在timer_tick events'else部分中,以下代码由我编写:

frmLogin login = new frmLogin();
login.Show();
timer1.Enabled = false;
this.Hide();

那么关闭Form1而不是隐藏Form1的任何解决方案?

2 个答案:

答案 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并显示主窗体。