ShowDialog вернется к вашей функции только после того, как она будет закрыта, поэтому функция скрытия вызывается после закрытия / завершения диалогового окна.
Сначала, возможно, создайте его как объект new
, который способ уникальности каждого экземпляра формы (при условии, что вы не хотите хранить на нем данные) , затем убедитесь, что он закрыт и утилизирован, как только вы закончите с ним. Это должно исправить ошибку окна, которое уже открыто.
Итак, сначала скройте свою первую форму, а затем отобразите ту, которую вы sh хотите отобразить. Если вы используете здесь using, тогда, если showdialog выдает исключение, оно все равно будет удалено.
using(var win = new Forms.inDepthScootForm())) {
win.passProductDetails(strProductName, strProductDescription);
Forms.eScootForm.Hide();
win.ShowDialog();
} //win gets disposed as soon as the program leaves this
Forms.eScootForm.Show();
Если это не то, что вы хотите, укажите c, ie: «Когда Я показываю x-окно во второй раз. Я хочу, чтобы оно отображалось как шоу, а не как showdialog », но если вы это сделаете, убедитесь, что вы показали нам родителя, который на самом деле вызывает это окно и открыт, пока вы это делаете.
Не могли бы вы отредактировать свой вопрос, включив в него строку и в каком окне она выдает ошибку?