C#:成功登录后隐藏登录表单

C#:成功登录后隐藏登录表单,c#,C#,我有这个登录表单,每当我给出正确的登录信息时,另一个表单就会显示出来,但我无法让登录表单关闭。我已经试过了 private void button1_Click(object sender, EventArgs e) { if (emailTextBox.Text == "abc" && passwordTextBox.Text == "password123") { MainForm f1 = new Ma

我有这个登录表单,每当我给出正确的登录信息时,另一个表单就会显示出来,但我无法让登录表单关闭。我已经试过了

private void button1_Click(object sender, EventArgs e)
{
    if (emailTextBox.Text == "abc" && passwordTextBox.Text == "password123")
    {
        MainForm f1 = new MainForm();
        f1.Show();
    }
    else
    {
        MessageBox.Show("Invalid Email or Password.");
    }
}
但这不起作用。

试试这个:

Form2 f2 = new Form2();
f2.Hide();

您在何处以及如何创建登录表单?你叫它什么,它叫f2吗?你正在隐藏表单的一个新实例,而不是已经打开的表单。登录表单名为Form2。MainForm是我的应用程序,用户在登录inca后应该看到登录表单没有自动关闭吗?在
f1.Show()之后调用<代码>关闭()。刚刚尝试使用Close();现在这两种形式都起作用了!我忘了说我也试过这个。Close();但这也不起作用。为什么。隐藏();工作而不是关闭();?Hide()不处理表单实例,这就是应用程序保持运行的原因;另一方面,Close()发送消息关闭windows对话框,当表单关闭时,该表单中创建的所有资源都会被处理,这就是使用Close()时,登录表单和MainForm实例都会被处理的原因。
private void button1_Click(object sender, EventArgs e)
{
    if (emailTextBox.Text == "abc" && passwordTextBox.Text == "password123")
    {
        MainForm f1 = new MainForm();
        f1.Show();
        this.Hide();
    }
    else
    {
        MessageBox.Show("Invalid Email or Password.");
    }