Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB6 Form Show

5 réponses
Avatar
msnews.microsoft.com
Bonjour à tous,

Suite à une erreur "Feuille déjà affichée; imposible d'afficher modalement"

Comment savoir si une fenêtre est déjà affichée ?

Avec mes remerciements.
Michel

5 réponses

Avatar
Aski
Hello Michel,

Suite à une erreur "Feuille déjà affichée; imposible d'afficher
modalement"

Comment savoir si une fenêtre est déjà affichée ?



As-tu essayé avec la propriété (boolean) "Visible" ?
If Form1.Visible then 'la feuille est visivle
--
Cordialement

Aski
MVP Windows Desktop Experience
http://dechily.org/
http://dechily.org/Forum_Aski/
Avatar
Jacques93
Bonjour Henri,
Aski a écrit :
Hello Michel,

Suite à une erreur "Feuille déjà affichée; imposible d'afficher
modalement"

Comment savoir si une fenêtre est déjà affichée ?



As-tu essayé avec la propriété (boolean) "Visible" ?
If Form1.Visible then 'la feuille est visivle



Il y a, je crois me rappeler, un inconvénient avec cette méthode : le
fait de faire référence à une propriété (ici visible) d'une feuille non
chargée, a pour effet de la charger en mémoire, en fait l'équivalent de :
Load Form1

qui n'affichera pas la feuille, mais provoquera, outre son chargement,
l'exécution de la procédure Form_Load , ce qui peut avoir des effets
indésirables.

Mais en général, ça marche :-)

Une autre méthode consiste à parcourir la collection 'Forms' :

Private Function IsFormLoaded(fName As String) As Boolean
Dim f As Form

For Each f In Forms
If f.Name = fName Then
IsFormLoaded = True
Exit Function
End If
Next f
IsFormLoaded = False
End Function

avant de tester une de ses propreiéts


--

Cordialement,

Jacques.
Avatar
Aski
Bonjour Jacques,

Comment savoir si une fenêtre est déjà affichée ?



As-tu essayé avec la propriété (boolean) "Visible" ?
If Form1.Visible then 'la feuille est visible



Il y a, je crois me rappeler, un inconvénient avec cette méthode : le fait
de faire référence à une propriété (ici visible) d'une feuille non
chargée, a pour effet de la charger en mémoire, en fait l'équivalent de :
Load Form1

qui n'affichera pas la feuille, mais provoquera, outre son chargement,
l'exécution de la procédure Form_Load , ce qui peut avoir des effets
indésirables.

Mais en général, ça marche :-)

Une autre méthode consiste à parcourir la collection 'Forms' :

Private Function IsFormLoaded(fName As String) As Boolean
Dim f As Form

For Each f In Forms
If f.Name = fName Then
IsFormLoaded = True
Exit Function
End If
Next f
IsFormLoaded = False
End Function

avant de tester une de ses propreiéts



Effectivement, cette méthode est plus sure, d'autant plus que la boucle
concerne un nombre d'éléments réduits.
--
Cordialement

Henri
Avatar
msnews.microsoft.com
Effectivement, vos idées sont bonnes.... et je vous en remercie.....

Bonne fin de journée.

Michel


"msnews.microsoft.com" a écrit dans le message de news:

Bonjour à tous,

Suite à une erreur "Feuille déjà affichée; imposible d'afficher
modalement"

Comment savoir si une fenêtre est déjà affichée ?

Avec mes remerciements.
Michel



Avatar
Pierre Rivet
lldlddlsslls
dsdsdd

"msnews.microsoft.com" a écrit dans le message de news:

Effectivement, vos idées sont bonnes.... et je vous en remercie.....

Bonne fin de journée.

Michel


"msnews.microsoft.com" a écrit dans le message de
news:
Bonjour à tous,

Suite à une erreur "Feuille déjà affichée; imposible d'afficher
modalement"

Comment savoir si une fenêtre est déjà affichée ?

Avec mes remerciements.
Michel