|
|
Опубликовано 12.06.2016 16:28:41
|
|
|
|

Как избежать исключений при закрытии формы, когда вызов управления между потоками не может получить доступ к диспонируемым объектам. При вызове формы между потоками потока и при использовании invoke для присвоения значений или изменения свойств элементов управления, если поток не завершается до закрытия формы, всегда появляется исключение: нельзя получить доступ к распоряжённому объекту. Причина в том, что при вызове контроля формы в потоке форма уже была выведена из системы, поэтому она выходит из всех потоков до того, как форма будет выйдена. Чтобы решить эту проблему, вы можете добавить следующий код:
больше не будет появляться исключение. Вызов system.environment.exit(0) может полностью выйти из программы, независимо от того, какой поток вынужден закрыть, завершая программу очень чисто.
Закрывающее событие FormClosing
Когда форма закрыта, происходит событие FormClosed. Это событие решено. Это освобождает все ресурсы, связанные с формой.
Если вы отмените это мероприятие, форма останется открытой.
Когда форма появляется как диалог режима, нажатие «Закрыть» скрывает форму и устанавливает свойство DialogResult на Cancel. Установив свойство DialogResult в некоторых событиях, значение DialogResult можно переопределить, когда пользователь нажимает кнопку закрытия в правом верхнем углу.
FormClosed мероприятие
Событие FormClosed происходит после того, как метод Close или Exit пользователя или класса Application закрывает форму.
Вы можете использовать это событие для публикации некоторых ресурсов формы. Вы также можете использовать это событие для сохранения информации в форме ввода или для обновления родительской формы.
|
Предыдущий:Вход в C#/Winform версии 12306, вы можете вручную нажать на код проверки изображенияСледующий:C# сокет, чтобы получить IP-адрес клиента и порт
|