一键关闭两个表格?

时间:2013-03-01 01:29:46

标签: c# forms

我正在使用登录功能进行项目

当我运行项目时,有一个表单(form1)运行登录。 在我点击登录按钮后构建另一个表单(form2) - 这是我的程序的形式。 并将第一个表单(form1)隐藏起来。

问题是当我按下form2中的X按钮时它已关闭但是form1仍在运行。

我尝试关闭form1而不是隐藏...但这会在启动之前关闭form2

form1

this.Hide();
Form2 x = new Form2();                 
x.Show();

4 个答案:

答案 0 :(得分:5)

我认为你的表格形式错误。

Form1应该是你的应用程序,并在第一次加载时将Form2显示为对话框,然后当它关闭时,你可以处理结果并决定是继续还是关闭应用程序。

类似的东西:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Load += new EventHandler(Form1_Load);
    }

    void Form1_Load(object sender, EventArgs e)
    {
        Form2 myDialog = new Form2();
        if (myDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
        {
            // failed login
            // exit application
        }
        // all good, continue
    }
}

答案 1 :(得分:1)

您可以订阅子表单FormClosed事件,并使用该表单在父表单上调用Close

x.FormClosed += new FormClosedEventHandler(x_FormClosed);

void x_FormClosed(object sender, FormClosedEventArgs e)
{
    this.Close();
}

答案 2 :(得分:0)

尝试此操作,如果已授予访问权限,则在登录按钮中

private void logInBtn_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.ShowDialog();
            this.Hide();
        }

然后在form2中如果要退出

private void exitBtn_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

希望这会有所帮助。

答案 3 :(得分:0)

如果表单中存在FormClosed,则转到form2。

将此代码放入eventhandler:

private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }

FormClosed是用户关闭表单时的事件。因此,当您关闭表单时,会放置一个代码,该代码将退出您的应用程序-applicationn.exit(); -

希望这会奏效。