Если вам неудобно помещать свой код в событие Form_Closing, единственный известный мне вариант - это «взлом», который я использовал один или два раза. Не стоит прибегать к этому хаку, но вот оно:
Не используйте обычную кнопку закрытия. Вместо этого создайте свою форму, чтобы она не имела элемента управления. Вы можете сделать это, установив ControlBox = false в форме, и в этом случае у вас все равно будет нормальная полоса в верхней части формы, или вы можете установить FormBorderStyle формы на «Нет». Если вы идете по этому второму маршруту, не будет никакой полосы в верхней части или какой-либо другой видимой границы, поэтому вам придется смоделировать ее, рисуя на форме или используя элементы управления Panel.
Затем вы можете добавить стандартную кнопку и сделать так, чтобы выглядел как кнопка закрытия, и поместите туда свой код очистки. В конце события кнопки просто позвоните this.Close()
(C #) или Me.Close()
(VB)