从子窗口关闭父窗口

本文关键字:窗口 | 更新日期: 2023-09-27 18:27:16

我把按钮放在父窗口上,转到子窗口。为了关闭子窗口,我在单击按钮时使用this.close(),但我想通过单击子窗口的按钮来关闭父窗口和子窗口。

从子窗口关闭父窗口

试试这个

If Child.ShowDialog = DialogResult.OK Then
          Parent.close
        End If

子窗体关闭按钮

Me.diaglogresult=DialogResult.OK

将父窗体传递到子窗体,并在关闭的事件处理程序中调用其关闭方法。

您可以从子窗体关闭父窗体,但对我来说,这似乎有点违反了封装原则。

另一种选择是从父窗体订阅子窗体的关闭事件,然后在父窗体中对其进行响应——有关实现,请参阅Winform窗体关闭事件。

    private void btnOpenForm_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2();
        frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
        frm2.Show();
        this.Hide();
    }

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