Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 457
serialhobbyist Avatar asked Jul 14 '09 09:07

serialhobbyist


1 Answers

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

like image 56
adrianbanks Avatar answered Oct 17 '22 08:10

adrianbanks