FormClosed
происходит всякий раз, когда пользователь закрывает форму, после форма была закрыта и указывает причину закрытия.
Причина вашего кода невозможно, некоторые элементы управления в форме уже уничтожены ...
Я предлагаю вам использовать событие FormClosing
, которое происходит всякий раз, когда пользователь закрывает форму, до , когда форма закрыта.и указывает причину закрытия.
Пример кода (он очень похож на то, что вы сделали выше):
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MyMainForm_FormClosing);
...
private void MyMainForm_FormClosing(object sender, FormClosingEventArgs e)
{
//your code goes here
//optionally, you can get or set e.Cancel which gets or sets a value indicating that the event should be cancelled; in this case the form won't close if you cancel it here
//or, you can check e.CloseReason which gets a value that indicates why the form is being closed (this is an enum Systems.Windows.Forms.CloseReason)
}