serialhobbyist
serialhobbyist

Reputation: 4815

Modal Dialog from a Modal Dialog - both close when second is closed - why?

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.

Upvotes: 11

Views: 4657

Answers (2)

adrianbanks
adrianbanks

Reputation: 82944

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).

Upvotes: 20

maxxxx
maxxxx

Reputation: 123

I have struggled with this the whole day until I found this post. It has not been fixed in .NET 4.

Upvotes: 0

Related Questions