C# / .NET 3.5 / WinForms
I've got a form that opens a modal dialog form which opens another modal dialog form. The inner dialog form has OK and Cancel buttons and its AcceptButton and CancelButton are set to them respectively.
When I hit Enter or click OK in the inner dialog, the outer dialog closes as well. I can't see where I'm doing this - is this expected behaviour?
I can supply code but I didn't want to clutter this up.
This happens because a ShowDialog
call modifies its owner's state as well.
To prevent this from happening, you need to reset the DialogResult
of the first modal dialog to DialogResult.None
after the ShowDialog
call to the second dialog:
private void Button1_Click(object sender, EventArgs e)
{
InnerDialog inner = new InnerDialog()
DialogResult innerResult = inner.ShowDialog(this);
this.DialogResult = DialogResult.None;
}
This has been a long-standing issue (see this post).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With