War*_*now 5 c# visual-studio-2010 showdialog winforms
我使用ShowDialog打开一个表单作为模态对话框.此对话框允许使用ShowDialog再次打开另一个窗体作为模式对话框.
当最里面的对话框关闭时,这也会导致其父对话框关闭.为什么会发生这种情况,我该如何预防呢?
我已经创建了问题的hello world版本来说明这一点.
表格1:
private void OpenForm2Button_Click(object sender, EventArgs e)
{
Form2 testForm = new Form2();
DialogResult dialogResult = new DialogResult();
dialogResult = testForm.ShowDialog();
MessageBox.Show("Form 2 returned: " + Convert.ToString(dialogResult));
}
Run Code Online (Sandbox Code Playgroud)
表格2:
...
this.Form2OKButton.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Form2CancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
...
this.AcceptButton = this.Form2OKButton;
this.CancelButton = this.Form2CancelButton;
...
private void OpenForm3Button_Click(object sender, EventArgs e)
{
Form3 testForm = new Form3();
DialogResult dialogResult = new DialogResult();
dialogResult = testForm.ShowDialog();
MessageBox.Show("Form 3 returned: " + Convert.ToString(dialogResult));
}
Run Code Online (Sandbox Code Playgroud)
表格3:
...
this.Form3OKButton.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Form3CancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
...
this.AcceptButton = this.Form3OKButton;
this.CancelButton = this.Form3CancelButton;
Run Code Online (Sandbox Code Playgroud)
重现步骤:
表格3以DialogResult ==取消按预期结束,但表格2也以DialogResult ==取消(不是预期)结束.
dig*_*All 15
编辑:
问题是这一个(文件:) Form2.Designer.cs
:
this.OpenForm3Button.DialogResult = System.Windows.Forms.DialogResult.Cancel;
Run Code Online (Sandbox Code Playgroud)
当您OpenForm3Button
在OpenForm3Button_Click
事件处理程序结束后单击时,form.DialogResult
会自动设置为Cancel
并关闭它.
重置DialogResult
属性,OpenForm3Button
它将按预期工作:)
归档时间: |
|
查看次数: |
5574 次 |
最近记录: |