2表格结束和开放

时间:2013-01-23 12:50:48

标签: c# winforms

我有两张表格。在第一个表格的初始我有代码:

public App_Index()
        {
            InitializeComponent();

            this.Hide();

            Authorization loginForm = new Authorization();
            loginForm.ShowDialog();
        }

如果我按下Form2上的关闭按钮[X] - App_Index(Form1)Form do .Show();但是在Form2中没有关于此的代码。如果我在Form2上按[X],我想关闭Form1和Form2。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

这个怎么样?如果对话框被取消,这将关闭当前表单。

public App_Index()
{
    InitializeComponent();

    this.Hide();

    Authorization loginForm = new Authorization();
    if (loginForm.ShowDialog() == DialogResult.Cancel)
        Close();
}

答案 1 :(得分:0)

您可以处理FormClosing事件:

private void Authorization_FormClosing( object sender, FormClosingEventArgs e )
{
    if ( e.CloseReason == CloseReason.UserClosing )
    {
         Application.Exit();
    }
}

答案 2 :(得分:0)

有几种不同的方法可以做到这一点。您可以使用Application.OpenForms循环并关闭所需的表单。我会在Form2的Form_Closing事件中执行此操作:

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        foreach(Form frm in Application.OpenForms)
        {
            if(f.Name == "Form1")
                f.Close();
        }
    }

您也可以直接在OpenForms集合中访问表单并关闭它:

Application.OpenForms["Form1"].Close()