Выполнить код после закрытия диалога, и он не виден

2

Я хочу выполнить некоторый код внутри 'Form1', но после закрытия диалогового окна и его не видно. Я знаю, что я могу сделать это за пределами диалога после вызова ShowDialog(), но мне это не нравится.

Я попробовал в 'FormClosed', но кажется, что диалог все еще отображается, когда это событие запущено. Кроме того, если я назову 'Hide()' основной диалог, который он сведен к минимуму, произойдет что-то интересное

  • 0
    что это интересного?
  • 0
    главный диалог исчезает и появляется снова
Теги:
winforms

2 ответа

3

Я бы создал статический метод в диалоговом окне, и в этом методе отобразится диалог и выполнит все, что нужно выполнить после его закрытия, например

public static void ShowAndDoStuff()
{
  MyDialog dialog = new MyDialog();
  dialog.ShowDialog();
  dialog.DoStuff();
}
1

Вы можете попробовать Закрывающее событие, также метод hide - хорошая идея. Я предлагаю раствор смеси просто используйте логическую переменную (т.е.: sysclose) с ложным значением по умолчанию, в закрывающем случае, если sysclose false, отмените закрытие и скройте форму, затем выполните задание sysclose в true и вызовите this.close

Ещё вопросы

Сообщество Overcoder
Наверх
Меню