Como evitar o fechamento e descarte de um winform no evento FormClosing?

Esta pergunta pode parecer uma duplicata, mas eu corri para esta questão enquanto estava testando o meu programa e estou meio confuso com a forma como você o resolveu.

Eu tenho uma winform e tem um evento de fechamento de formulário. No evento, abro uma caixa de mensagem perguntando ao usuário: "Tem certeza de que deseja fechar a janela?". Se eles pressionarem o botão Sim, o aplicativo fecha a janela e impede que ela seja descartada conforme o esperado. Então, eu posso abri-lo novamente. No entanto, se eles não pressionaram nenhum botão, ele ainda fecha a janela, mas agora a janela é descartada. Então, quando eu tento abri-lo novamente, ele levantou uma exceção, "Não é possível acessar um objeto descartado". Quando nenhum botão é pressionado, quero que a forma de exibição permaneça aberta e não descartada.

Aqui está o meu código:

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;

Eu pensei desde que você tem que definir e.Cancel = true para fechar a janela e dizer para esconder, fazendo o oposto disso (e.Cancel = false e sem esconder) irá impedir que o winform feche e seja descartado.

Como voce resolve isso?

Agradeço antecipadamente,

questionAnswers(1)

yourAnswerToTheQuestion