Jak zapobiec zamknięciu i pozbyciu się winform w wydarzeniu FormClosing?

To pytanie może wydawać się duplikatem, ale po prostu wpadłem na ten problem podczas testowania mojego programu i jestem trochę zmieszany, jak go rozwiązać.

Mam winform i ma zdarzenie zamknięcia formularza. W takim przypadku otwieram okno wiadomości z pytaniem użytkownika „Czy na pewno chcesz zamknąć okno?”. Jeśli naciśniesz przycisk Tak, aplikacja zamknie okno i uniemożliwi usunięcie go zgodnie z oczekiwaniami. Więc mogę go otworzyć ponownie. Jeśli jednak nie naciśnie żadnego przycisku, nadal zamyka okno, ale teraz okno zostanie usunięte. Tak więc, gdy próbuję go otworzyć ponownie, zgłosił wyjątek „Nie można uzyskać dostępu do usuniętego obiektu”. Gdy żaden przycisk nie jest wciśnięty, chcę, aby winform był otwarty i nie został usunięty.

Oto mój kod:

method PPMain.PPMain_FormClosing(sender: System.Object; e: System.Windows.Forms.FormClosingEventArgs);
begin
       if MessageBox.Show('Are you sure you want to close the window?','PPMain',MessageBoxButtons.YesNo) = DialogResult.Yes then
       begin
             e.Cancel := true; 
             Hide; 
       end
       else
             e.Cancel := false;
end;

Pomyślałem, że ponieważ musisz ustawić e.Cancel = true, aby zamknąć okno i powiedzieć mu, żeby się ukrył, wykonanie odwrotnej czynności (e.Cancel = false i brak ukrywania) uniemożliwi zamknięcie winform i jej usunięcie.

Jak to rozwiązać?

Z góry dziękuję,

questionAnswers(1)

yourAnswerToTheQuestion