Способы выхода из приложения после запуска нескольких winforms? - PullRequest
3 голосов
/ 01 ноября 2010

Допустим, я запустил кратные winforms из Program.cs с

Form1 form1 = new Form1();
form1.show();
Form2 form2 = new Form2();
form2.show();
Application.Run();

Как мне выйти из приложения, когда все формы закрыты пользователем?

Я, конечно, могу поставить Application.Exit() в событии FormClosed, но это не очень элегантно, я думаю.Есть ли другие способы?

Обновление: я имею в виду, что нехорошо жестко кодировать каждую форму. Каждый закрытый, мне нужно добавить новую форму.Так есть ли способ, которым я могу подключиться к любому событию FormClosed глобально, чтобы я мог поддерживать код в центральном обработчике событий, не выполняя PLUMBING BY HAND.

В некоторых средах, таких как Wordpress, вы можете захватывать любое событие для любого объекта в глобальном масштабе. Мне нужны такие же вещи.

Ответы [ 3 ]

4 голосов
/ 01 ноября 2010

Application.Exit () требуется в этом случае. Другой подход заключается в том, что вы определяете одну из форм как «главное окно». И приложение закроется, когда оно будет закрыто:

 Application.Run(form1);

.NET Framework также поддерживает режим закрытия «когда закрывается последнее окно». Проверьте мой код в этой теме для требуемого кода.

1 голос
/ 01 ноября 2010

Вы можете вести список открытых форм, и каждый раз, когда форма закрывается, она удаляет себя из этого списка и затем проверяет, является ли список пустым.Если список пуст, закройте приложение.

1 голос
/ 01 ноября 2010

Используйте Application.OpenForms, чтобы обработать все открытые формы и решить, что с ними делать. Если вы знаете, какой из них следует сохранить - предложите пользователю, в противном случае закройте его. И так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...