Form visible ?!

Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 - 21 avril 2005 à 13:42
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 21 avril 2005 à 14:19
Salut



comment tester si une form est en cours d affichage sans utiliser Frm.Visible ?

Herve

7 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
21 avril 2005 à 13:47
La bonne blague !!!!! Pourquoi tu veux pas utiliser frm.Visible ? Ou pourquoi tu ne peux pas ?

Christophe R
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
21 avril 2005 à 13:52
en fait je veux tester si une Form est en cours d affichage....mais je
me suis rendu compte qu en utilisant Frm.visible il lance Frm.load, ce
qui est un peux inutile si la form n est pas en cours d affichage.





Herve
0
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009
21 avril 2005 à 13:55
lu tu pe mettre un textbox avec l'API suivant :

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Puis inserer un textbox appelé Text1 et mais sa dans form_load :

Private Sub Form_Load()
If ShowWindow(Form2.hwnd, nCmdShow) Then
Text1.Text = "Vrai"
Else
Text1.Text = "Faux"
End If
End Sub

Je sait pas si sa répond a ta question .
Bon a+
0
robapt Messages postés 114 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 4 décembre 2009
21 avril 2005 à 13:56
dsl je me suis trompé l'API n'est pas dans le Textbox
dsl
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
21 avril 2005 à 14:06
Il te reste à parcourir la collections Forms ...
Function FormLoaded(ByVal FrmName As String) As Boolean
Dim F as Form

For Each F in Forms
If F.Name = FrmName Then
FrmLoaded = True
Exit Function
End If
Next
FrmLoaded = False
End Function
... Ceci te retourne True si la form dont tu transmet le nom en argument est chargée en mémoire et False sinon. Si elle est chargé, tu peux alors tester la valeur de la propriété Visible sans risque.

Christophe R
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
21 avril 2005 à 14:16
Merci !

Herve
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 avril 2005 à 14:19
DoEvents renvoie le nombre de feuilles visibles mais on sait pas lesquelles.
en supposant que tu n'aies que 2 formes, si la valeur est = 1 c'est qu'une feuille n'est pas visible, à toi de savoir laquelle.

If DoEvents = 2 Then
MsgBox = "visible"
Else
MsgBox = "non visible"
End If

Daniel
0
Rejoignez-nous