Pb Fermeture formulaire enfant

Signaler
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
23 septembre 2008
-
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
-
J'ai un formulaire Parent qui correspond à mon menu général.
Dans ce formulaire, j'ai une option qui permet d'ouvrir un formulaire enfant.

Dans le load du formulaire enfant, un combobox est chargé à partir des données d'une base de données. Lorsque la connexion à la bdd n'est pas possible, je catche cette exception et j'affiche une boîte de dialogue indiquant que la connexion à la bdd est impossible. Puis j'indique que le formulaire enfant doit se fermer.

Lorsque j'exécute : message exception non gérée du type System.invalidOperationException s'est produite dans system.windows.form.dll impossible d'appeler close() pendant un createhandle().

J'ai essayé de ne pas passer par les formulaires mdi parent/enfant, et d'ouvrir mon 2ème formulaire en boîte de dialogue, ok pour le message de connexion à la bdd, l'exception précédente n'est pas levée mais par contre mon programme effectue un test lorsque l'utilisateur n'a pas saisi un champ dans mon formulaire, dans ce cas j'affiche un message "veuillez saisir le champ XX", et là pouf mon formulaire se ferme en même temps que mon message (pas bon je veux que mon formulaire reste ouvert).

QQn peut-il m'aider ? Merci

2 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Je crois qu'avec un bout de code (meme épuré) de ta form fille, on y
verrait un peu plus clair. Et ce sera plus facile pour nous de déceler
le problème.



Mx
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
oui on ne peut pas fermer de fenetre pendant le load de celle ci, par contre, ce que tu peux essayer de faire , avec les fenetre mdi,

c'est de lancer une fonction de ta form enfant avec le show, cette fonction public vérifiant que tout c'est bien passé et si tout ne s'est pas déroulé normalement, tu ferme la fenetre
du style

maformEnfant.Show();
maformEnfant.VerifierChargement();

public void FormEnfant_Load()
{
if ( ChargerCombo()== false)
{
chargement= false;
return;
}
...

chargement = true;
}

public void VerifierChargement()
{
messagebox.show( "Erreur pendant le chargement de maform, fermetrure de la form");
this.Close();

}