0

我有 2 个表格。在第一种形式的初始化中,我有代码:

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。我怎样才能做到这一点?

4

3 回答 3

2

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

public App_Index()
{
    InitializeComponent();

    this.Hide();

    Authorization loginForm = new Authorization();
    if (loginForm.ShowDialog() == DialogResult.Cancel)
        Close();
}
于 2013-01-23T12:52:54.310 回答
0

你可以处理FormClosing事件:

private void Authorization_FormClosing( object sender, FormClosingEventArgs e )
{
    if ( e.CloseReason == CloseReason.UserClosing )
    {
         Application.Exit();
    }
}
于 2013-01-23T13:00:27.493 回答
0

有几种不同的方法可以做到这一点。您可以使用循环Application.OpenForms并关闭您想要的表单。我会在Form_ClosingForm2 的事件中这样做:

    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()
于 2013-01-23T13:04:23.010 回答