Salut,
Si j'ai bien compris, form.close() ne détruit pas le form mais le met simplement hide.
Dans l'évènement FormCloded du form j'ai donc mis this.dispose().
Pour charger le form à partir du form parent, j'aiCela fonctionne très bien (j'ai mis la fenêtre parent et une variable NumForme dans le constructeur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 parcelleDetails = new ParcelleDetails(this, NumForme); parcelleDetails.show();
Comme au chargement j'ai de longues méthodes, dans le load j'ouvre un showDialog signalant l'avancement d'un backgroundworker, avec un bouton cancel.
Si l'utilisateur appuie sur le bouton cancel, le backgroundworker est arrêté et le showDialog est fermé en retournant un DialogResult.Cancel.
Cela fonctionne aussi.
Toutefois, si l'utilisateur a interrompu le chargement, je veux que la fenêtre se ferme.
J'ai donc écris :Cela fonctionne et l'application passe bien sur this.Close(); puis sur this.Dispose(); dans le FormClosed. L'application étant passée dans le FormClosed, il me semble que le form devrait être fermé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (dlgProgressResult == DialogResult.Cancel) this.Close();
Par contre la fenêtre reste toujours ouverte.
Je ne comprend pas.
Il me semble pourtant que le Form_Load se produit après le show(). Dans ce cas, pourquoi le le form ne se ferme-t-il pas et n'est-il pas détruit alors qu'il est bien passé dans le FormClosed ?
Merci de vos z'avis z'avisés.
Partager