Form_activate d'une form

molbento Messages postés 35 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 23 mai 2007 - 19 avril 2007 à 11:56
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 - 19 avril 2007 à 16:14
Bonjour, je développe en visual basic 6 et j'ai quelque petit problème. Pour mon application j'ai une feuille MDI (mamdi) et deux form (form1 et form2).La form1 est une feuille fille de mamdi et form2 est une boite de dialogue lancer depuis form1. Mon problème est que lorsque je lance form1 la méthode form1_activate() se lance puis quand je click sur un bouton cela lance la boite de dialogue (form2). Quand cette booite de dialogue souvre ca méthode form2_activate() se lance également. Mon problème est que lorsque je ferme cette boite de dialogue je retourne donc sur form1 et la la méthode form1 ne se relance pas. Et je ne comprend pas pourquoi? Car par définition des qu'une feuille prend le focus la méthode activate se lance et pas dans ce cas. Est ce que quelqu'un pourrait m'aider. Merci d'avance

10 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 avril 2007 à 12:01
Salut, je viens de tester, effectivement ça se déclenche pas! C'est normal, car en fermant la Form2 tu ne donne pas le focus à Form1 donc l'évènement de activate de Form1 ne peut pas être déclenché!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
molbento Messages postés 35 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 23 mai 2007
19 avril 2007 à 12:07
Comment faire pour rendre le focus à Form1?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 avril 2007 à 12:13
tu peux essayer un setFocus à la fermeture de ta form2 sur un contrôle de ta form2 (il faut qu'elle soit encore visible) puis un setFocus sur la form1, mais c'est sans conviction !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 avril 2007 à 12:16
Bonjour, DARKSIDIOUS,

Je pense que tu as voulu inviter à utiliser l'événement GotFocus, non ?
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 avril 2007 à 12:16
Sinon tu ouvre Form2 en modal, comme ça à la fermeture Form1 recupèrera automatiquement le focus.

Mais Form2 en modal, veut dire que aucune autre fenetre de ton appli ne pourra avoir le focus tant que Form2 sera ouverte.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
molbento Messages postés 35 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 23 mai 2007
19 avril 2007 à 12:18
Non ca marche pas avec un setfocus
0
molbento Messages postés 35 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 23 mai 2007
19 avril 2007 à 13:13
J'ouvre ma form2 en modal et pourtant quand je la ferme (unload form2) form1_activate() n'est pas prise en compte. Je sais pas si ca viens du fait que form1 est une fille de mamdi.  
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 avril 2007 à 13:56
Je dirais plutôt que ca vient du fait que Form2 soit modale !

A la limite, crée une fonction en portée Friend, que tu appelle dans le Form_Activate ET dans l'événement de fermeture de ta form2 (une fois que la fenêtre soit masquée là par contre).
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
19 avril 2007 à 16:10
Bonjour,
Peut être un début de piste
J'ai mis Une feuille MDI,
une feuille fille avec un bouton et un texte
une feuille normale ControlBox= false et un bouton pour quitter
un module



dans le module

dim  Premier as Boolean

et les événements suivant
dans la formMDI
Private Sub MDIForm_Activate()
    If Premier Then
        Unload Form2
        Premier = False
        Form1.Text1.SetFocus
    End If
End Sub

dans Form1
Private Sub Command1_Click()
   Form2.Show
End Sub

dans form2
Private Sub Command1_Click()
    Premier = True
    Me.Hide
    MDIForm1.SetFocus
End Sub
C'est peut être un peu empirique mais ca fonctionne
lorsque je ferme form2 le text1 de form1 a le focus.
louis
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
19 avril 2007 à 16:14
Ca marche aussi en Modal
0
Rejoignez-nous