Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Bugs: Form_Resize s'exécute après Form_Close pour un formulaire maximisé

Author(s)
Dev Ashish

Form_Resize s'exécute après Form_Close pour un formulaire maximisé.

    Pour reproduire ce problème, créer un nouveau formulaire et y ajouter le code suivant, comme procédures événementielles:

Private Sub Form_Close()
    Debug.Print "Closing..."
End Sub

Private Sub Form_Resize()
   Debug.Print "Resizing..."
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Debug.Print "Unloading..."
End Sub

    Si le formulaire n'est pas maximisé, la séquence d'événements que vous devriez recevoir est:

   Resizing -> Unloading -> Closing

    Mais si le formulaire est maximimé, cela devient plutôt:

 Unloading -> Closing -> Resizing

    Ainsi, si vous référez, dans la procédure événementielle Resize,  à un objet ou à une variable dont l'étendue (scope) est celle de la forme, vous risquez fortement de recevoir l'erreur  91 (Object variable or With block variable not set).

    Pour contourner cette erreur, définir une variable booléenne dans un module et ne parcourir l'événement  Resize seulement si cette variable est à vrai. Vous prenez soin de mettre cette même variable à faux dans la procédure événementielle du formulaire Close.

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer