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中的已知问题.
这段代码对我来说工作得很好。我认为您的代码的另一部分有问题。
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)