子表单关闭时父表单关闭

Joh*_*nny 6 c# forms event-handling

在我的C#应用​​程序中,我有以下方法在主窗体关闭时调用.

private void FormMain_Closing(object sender, FormClosingEventArgs e)
{ 
        // Show this dialog when the user tries to close the main form
        Form testForm = new FormTest();
        testForm.StartPosition = FormStartPosition.CenterParent;
        testForm.ShowDialog();
}   
Run Code Online (Sandbox Code Playgroud)

这将创建一个对话框窗口,显示主窗体何时关闭.但是,我的问题是当用户关闭时testForm,主表单会立即关闭.我已经尝试过各种各样的变种e.Cancel = true;等等,但仍然无法取消关闭的主要表格.

有任何想法吗?


编辑:看起来我正在使用两个ShowModal()连续的问题.调查问题......


编辑:使用this.DialogResult = DialogResult.None;它似乎解决了我的问题.当从模式对话框打开模态对话框时,它显然是WinForms中的已知问题.

oxi*_*min 2

这段代码对我来说工作得很好。我认为您的代码的另一部分有问题。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    Form testForm = new FormTest();
    testForm.StartPosition = FormStartPosition.CenterParent;
    testForm.ShowDialog();

    e.Cancel = testForm.DialogResult == DialogResult.Cancel;
}
Run Code Online (Sandbox Code Playgroud)