C#MDI父级检测MDI Child何时关闭?

COD*_*ODe 6 c# mdi mdiparent mdichild formclosing

我试图在MDI父级上检测到我的MDI子窗体何时关闭,并做出相应的反应.在MDI子女关闭之前,MDI家长不应做任何事情.这是我的代码,我不确定我做错了什么,但我添加的表单关闭事件方法永远不会被调用...

如果不明显,则以下代码位于MDI父类中.

    private void keyValidation()
    {
        if (Properties.Settings.Default.Unlock == true)
            return;
        else
        {
            menu.Enabled = false;
            statusStrip.Enabled = false;

            ValidationForm vf = new ValidationForm();
            vf.MdiParent = this;
            vf.Show();
            vf.FormClosed += new FormClosedEventHandler(validationForm_FormClosed);
        }
    }

    void validationForm_FormClosed(object sender, FormClosedEventArgs e)
    {
        MessageBox.Show("Got here");
        if (Properties.Settings.Default.Unlock == true)
        {
            menu.Enabled = true;
            statusStrip.Enabled = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Pow*_*ord 1

虽然这并不能真正解决您所指的问题,但从用例来看,您可能需要考虑将验证表单作为模式对话框而不是作为 MDI 子项打开。

ShowDialog()您可以使用现有的表单方法来执行此操作Show()。请记住,如果将它们分配给其他表单上的按钮,ShowDialog()也可能返回 a 。DialogResult