Gestion des fenêtres MDI [Résolu]

Signaler
Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007
-
cs_Phil72000
Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007
-
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

Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Oups, j'avais pas vu que tu causais en .Net
Faudrait vérifier, mais je pense que le ActiveForm doit toujours exister
Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007

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 ?
Messages postés
130
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
9 juillet 2009

Salut ,
Essayes ça cela devrais marcher :



For



Each
F

As
Form

In



Me
.MdiChildren




      If
F.Focused

Then



Return
F.Name




Next
Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007

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.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
13
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
18 décembre 2007

Bien sûr.
Merci pour votre réactivité.
Phil