Appli MDI et instanciation de Windows.Forms Child

Le
Gerald
Bonjour
je suis sous vb 2008

dans une form MDIParent, j'ouvre de nouveau forms

'--
Private Sub s_AfficheFrmBibliotheques() ' Appelé a partir d'un bouton
Dim F As New frmBibliotheques
F.MdiParent = Me
F.Show()
End Sub
'--

mais je peux ouvrir aussi le form Projet par exemple (avec son bouton)
comment puis-je savoir quel formulaire est chargé (instancié)

ce code (et pour cause) me charge un nombre indetermine de formulaire
frmBibliotheques

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #17907051
Bonjour Gerald,

En utilisant 1 variable publique ? (Je vois pas comment faire autrement.)

Stéphane.


"Gerald"
Bonjour
je suis sous vb 2008

dans une form MDIParent, j'ouvre de nouveau forms

'--------------------------------------------------
Private Sub s_AfficheFrmBibliotheques() ' Appelé a partir d'un bouton
Dim F As New frmBibliotheques
F.MdiParent = Me
F.Show()
End Sub
'--------------------------------------------------

mais je peux ouvrir aussi le form Projet par exemple (avec son bouton)
comment puis-je savoir quel formulaire est chargé (instancié)

ce code (et pour cause) me charge un nombre indetermine de formulaire
frmBibliotheques

Merci



Gerald
Le #17907431
Merci, c'est ce que je voulais eviter mais je vais utiliser cette solution
en attendant qqchose de mieux





<Stéphane> a écrit dans le message de news:

Bonjour Gerald,

En utilisant 1 variable publique ? (Je vois pas comment faire autrement.)

Stéphane.


"Gerald"
Bonjour
je suis sous vb 2008

dans une form MDIParent, j'ouvre de nouveau forms

'--------------------------------------------------
Private Sub s_AfficheFrmBibliotheques() ' Appelé a partir d'un bouton
Dim F As New frmBibliotheques
F.MdiParent = Me
F.Show()
End Sub
'--------------------------------------------------

mais je peux ouvrir aussi le form Projet par exemple (avec son bouton)
comment puis-je savoir quel formulaire est chargé (instancié)

ce code (et pour cause) me charge un nombre indetermine de formulaire
frmBibliotheques

Merci







Jérémy Jeanson
Le #17911641
Vade retro variable publique...

Il existe une collection que fait exactement ce que tu cherches Gerald,
Application.OpenForms
(je crois que le nom de la collection est plutôt explicite :))

Avec cette collection tu devrais pouvoir faire exactement ce que tu veux.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Jacquouille14
Le #17911631
Gerald a écrit :
Merci, c'est ce que je voulais eviter mais je vais utiliser cette solution
en attendant qqchose de mieux





<Stéphane> a écrit dans le message de news:

Bonjour Gerald,

En utilisant 1 variable publique ? (Je vois pas comment faire autrement.)

Stéphane.


"Gerald"
Bonjour
je suis sous vb 2008

dans une form MDIParent, j'ouvre de nouveau forms

'--------------------------------------------------
Private Sub s_AfficheFrmBibliotheques() ' Appelé a partir d'un bouton
Dim F As New frmBibliotheques
F.MdiParent = Me
F.Show()
End Sub
'--------------------------------------------------

mais je peux ouvrir aussi le form Projet par exemple (avec son bouton)
comment puis-je savoir quel formulaire est chargé (instancié)

ce code (et pour cause) me charge un nombre indetermine de formulaire
frmBibliotheques

Merci










Bonjour,
Peut être en partant de :
if ctype(sender,form).name="le nomd e la form" then ...

--
Jacques dit Jacquouille
Le #17915971
Bonjour Jérémy,

Petite interrogation :
Et si les 2 forms succeptibles d'appeler l'autre form sont ouverts en même
temps ?

Stéphane.

PS : Ah non ! Mon rétro ! ^_^


"Jérémy Jeanson"
Vade retro variable publique...

Il existe une collection que fait exactement ce que tu cherches Gerald,
Application.OpenForms
(je crois que le nom de la collection est plutôt explicite :))

Avec cette collection tu devrais pouvoir faire exactement ce que tu veux.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net


Jérémy Jeanson
Le #17916361
Re,

Avec Vb .net il faut penser différemment de Vb6. Avant on avait de
"belles" variables publiques Form1, Form2 ...etc... que l'on ne
suspectait même pas des des variables publiques... cela nous semblait
tellement logique que Form1 était Form1 et non pas "une instance
publique" de Form1...

Donc maintenant on pense objet, tout objet:
-> Quand on créé une instance d'un objet, personne ne nous interdit d'en
créer une ou plusieurs autres.

Dans ton cas tu peux créer autant de Form1 que tu veux, car tout objet à
le droit de créer un Form1 et donc un Form1 peut créer un Form1. pas de
soucis et pas d'accrochage en perspective.

Par contre pour revenir à ton histoire de MDI, il faut noter deux
petites choses :
- Tu devras toujours déterminer les MdiParent d'un From, donc pour un
nouveau Form2 par exemple qui veut ouvrir un autre Form2 il faut
utiliser un code du genre:
Dim f As New Form2()
f.MdiParent = Me.MdiParent
f.Show()

- Ton conteneur MDI a lui aussi une liste des Forms qui sont instanciés
dans son conteneur : Me.MdiChildren()

En espérant t'avoir un peu plus éclairer sur les MDI et l'usage des
Forms Vb.net vis à vis de Vb6.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Publicité
Poster une réponse
Anonyme