Модальный диалог из модального диалога - оба закрываются при закрытии второй части - почему?
С#/.NET 3.5/WinForms
У меня есть форма, которая открывает модальную форму диалога, которая открывает другую модальную форму диалога. Внутренняя диалоговая форма имеет кнопки "ОК" и "Отмена", а ее "AcceptButton" и "CancelButton" установлены соответственно.
Когда я нажимаю Enter или нажимаю OK во внутреннем диалоговом окне, внешний диалог также закрывается. Я не вижу, где я это делаю - это ожидаемое поведение?
Я могу предоставить код, но я не хотел загромождать это.
Ответы
Ответ 1
Это происходит потому, что вызов ShowDialog
также изменяет его состояние владельца.
Чтобы этого не произошло, вам нужно reset DialogResult
первого модального диалога DialogResult.None
после вызова ShowDialog
ко второму диалоговому окну:
private void Button1_Click(object sender, EventArgs e)
{
InnerDialog inner = new InnerDialog()
DialogResult innerResult = inner.ShowDialog(this);
this.DialogResult = DialogResult.None;
}
Это давняя проблема (см. this post).
Ответ 2
Я боролся с этим целый день, пока не нашел этот пост. Он не был исправлен в .NET 4.