Почему OnClosing устарел, и я должен перейти на OnFormClosing - PullRequest
5 голосов
/ 29 июля 2009

Я читал документацию MSDN для метода System.Windows.Forms.Form.OnClosing () и заметил:

ВНИМАНИЕ: метод OnClosing устарел в .NET Framework версии 2.0; вместо этого используйте метод OnFormClosing.

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

  1. До того, как я потратил впустую часы, пробираясь через отражатель
  2. Было бы полезно иметь в качестве ссылки на других

Единственное отличие, которое я вижу, заключается в том, что вы получаете доступ к FormClosingEventArgs , поэтому, если вам не нужны эти (которые вы явно не использовали, если вы использовали OnClosing), есть ли какая-то выгода для переход на OnFormClosing?

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

1 Ответ

8 голосов
/ 29 июля 2009

Я считаю, что основной причиной было устранение некоторых несоответствий с OnClosing, в частности, тот факт, что он не вызывается, если форма закрывается из-за Application.Exit.

Из документации :

Методы OnClosed и OnClosing не вызываются, когда вызывается метод Application .. ::. Exit для выхода из приложения. Если у вас есть код проверки в любом из этих методов, который должен быть выполнен, вы должны вызвать метод Form .. ::. Close для каждой открытой формы отдельно, прежде чем вызывать метод Exit.

OnFormClosing предоставляет доступ к члену CloseReason, что значительно упрощает обработку с правильной и понятной последовательной информацией.

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