JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013
-
9 août 2006 à 22:30
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013
-
10 août 2006 à 00:34
Bonsoir !
Dans une application MDI, comment faire pour éviter de charger plusieurs fois le même formulaire.
Je pourrais désactiver l'option dans le menu de la MDIForm, mais c'est pas beau !
J'ai une fonction qui permet de vérifier si un formulaire est chargé:
Function IsLoaded(ByRef frm As Form) As Boolean
Dim f As Form
For Each f In Forms
If f Is frm Then
IsLoaded= True
Exit For
End If
Next
End Function
Lorsque l'utilisateur ouvre la fiche "Commandes" (par exemple), je vérifie d'abord si le form est chargé: dans form_initialize, je fais IsLoaded(FrmOrder). Et c'est ici que ca coince: comment éviter l'événement Load si IsLoaded m'a renvoyé VRAI ??
J'ai essayé de placer ce test dans l'événement Load() : la réponse est toujours Vrai !
Ce que je voudrais :
- Si le fomulaire n'est pas chargé, qu'il se charge (ça, ça fonctionne)
- Si le formulaire est minimisé, qu'il reprenne sa taille originale avec le focus
- Si le formulaire est à l'arrière-plan, qu'il gagne le focus
- si le formulaire a le focus et qu'il n'est pas minimisé, évidemment rien
Merci de votre aide
Jessica
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013 10 août 2006 à 00:34
Pour Chaibat05
Ca fonctionne la première fois que je lance le programme. Mais si je referme la fenêtre, je peux à nouveau la rouvrir plusieurs fois. Mais j'ai compris pourquoi et j'ai adapté le code en conséquence:
Private Sub mnuDatafrmFiche_Click()
' Dim f As New frmFiche mis en commentaire
If IsLoaded(frmFiche) = False Then Load frmFiche
' f.Show mis en commentaire
End Sub