如何关闭第一个窗体并打开新窗体

时间:2019-12-04 12:07:14

标签: c# winforms

我想在我设法完成的应用程序中打开第二个表单,但是第一个表单仍在后台打开。如何关闭它?

private void BtnLogin_Click(object sender, EventArgs e)
{
    var newForm = new Form2();
    if (string.Equals(txtbName.Text, "Georgi") && string.Equals(txtbPassword.Text, "123"))
    {
        newForm.Show();                
    }
    else
    {
        label2.Text = "Wrong password or username.Try again";
    }
}

3 个答案:

答案 0 :(得分:0)

尝试一下:

this.Hide();

或者,您也可以使用要隐藏的表单的名称,例如:

YourForm.Hide();

答案 1 :(得分:0)

取决于您是要隐藏表单还是将其关闭。

要结束交易,您可以选择:

private void BtnLogin_Click(object sender, EventArgs e)
{
    var newForm = new Form2();
    if (string.Equals(txtbName.Text, "Georgi") && string.Equals(txtbPassword.Text, "123"))
    {
        newForm.Show();   
        this.close(); 
    }
    else
    {
        label2.Text = "Wrong password or username.Try again";
    }
}

如果您只想隐藏它,请继续:

private void BtnLogin_Click(object sender, EventArgs e)
{
    var newForm = new Form2();
    if (string.Equals(txtbName.Text, "Georgi") && string.Equals(txtbPassword.Text, "123"))
    {
        newForm.Show();   
        this.Hide(); 
    }
    else
    {
        label2.Text = "Wrong password or username.Try again";
    }
}

答案 2 :(得分:0)

要在打开第二个表单时关闭或隐藏第一个表单吗?

在此解决方案中,您隐藏第一个表单,如果第二个表单正在关闭,则将其关闭。

private void BtnLogin_Click(object sender, EventArgs e)
    {
        var newForm = new Form2();
        if (string.Equals(txtbName.Text, "Georgi") && string.Equals(txtbPassword.Text, "123"))
        {
            Form2 form = new Form2();
            this.Hide();
            form.FormClosed += (s, args) => Close();
            form.Show();            
        }
        else
        {
            label2.Text = "Wrong password or username.Try again";
        }
    }