Gestion des fenêtres MDI

Résolu
cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007 - 17 août 2007 à 15:44
cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007 - 19 août 2007 à 18:30
Mon appli. utilise une fenêtre mère et des fenêtre filles (MDI).
J'aimerais retrouver le nom de la fenêtre fille active, c'est à dire celle qui est au premier plan.

8 réponses

cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007
18 août 2007 à 10:40
VOILA

En fait la solution, comme bien souvent est toute simple :

For
Each ChildForm
As Form
In
Me.MdiChildren

            If ChildForm.Text =
Me.ActiveMdiChild.Text
Then                        MsgBox(ChildForm.Text)

            End
If

Next

Merci à tous pour votre aide
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 août 2007 à 18:34
Salut
Me.ActiveForm.Name , tout simplement

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 août 2007 à 18:35
Oups, j'avais pas vu que tu causais en .Net
Faudrait vérifier, mais je pense que le ActiveForm doit toujours exister
0
cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007
17 août 2007 à 18:56
Ben vi, c'est bien là mon pb, le ActiveForm ne marche pas. A noter que les forms mdi sont crées en live. Donc, même en VB5, le Me.ActiveForm.Name n'aurait pas marché.
Merci du coup de main.
Si quelqu'un a une autre idée ?
0

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

Posez votre question
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009
17 août 2007 à 23:55
Salut ,
Essayes ça cela devrais marcher :



For



Each
F

As
Form

In



Me
.MdiChildren




      If
F.Focused

Then



Return
F.Name




Next
0
cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007
18 août 2007 à 10:26
Merci le5ejumeau, j'avais déjà essayé cette posssibilité, malheureusement aucune forme fille n'a le focus. En fait seule la forme mère a le focus aux yeux de Windows.
Il me semble que pour se sortir de ce pb il faudrait avoir la possibilité de connaître la position (z) de chaque form fille. Mais je ne sais pas comment on fait.
La seule chose que l'on connaisse est le numéro d'instance, donc l'ordre de création, ce qui n'est pas utile dans le cas présent.
Voilà un beau chalenge pour les membres de vbfrance, voir même d'un tutorial qui pourrait être utile à tous.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 août 2007 à 19:27
Re
Bah si tu arrives à faire le 
   If
ChildForm.Text = Me.ActiveMdiChild.Text Then

c'est que  Me.ActiveMdiChild  est bien un objet !
Donc  MsgBox Me.ActiveMdiChild.Text  devrait suffire sans lister les MdiForms, non ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Phil72000 Messages postés 13 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 18 décembre 2007
19 août 2007 à 18:30
Bien sûr.
Merci pour votre réactivité.
Phil
0
Rejoignez-nous