Gestion de plusieurs fenêtre windows à la fois sous VB.

Résolu
Signaler
Messages postés
3
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
4 août 2005
-
Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
26 septembre 2005
-
-Voila, je ne sais pas comment subordonner l'ouverture d'un deuxième System.Windows.Forms à une action sur le premier (la fenêtre qui s'affiche par défaut à l'ouverture du programme). D'un formulaire à l'autre il ne reconnait plus les boutons....

-De même je peine un peu avec la "openfiledialog" proposée dans les outils: elle s'ouvre quand? Le "handle openfiledialog.fileOk" ne me renseigne guère: est-ce à dire qu'elle s'ouvre en même temps que ma fenêtre "mère"?

-Enfin, (et nous auront fait le tour de nombreuses heures d'essais plus ou moins fructueux), je serais curieux de la méthode pour que les menus principaux déroulant (menuItem1...) se déroule sur simple passage de la sourie, et non obligatoirement sur click. Il semblerait que les mousehover, mouseleave et autres plaisanteries ne marchent que sur les boutons en bonne et due forme...

Tout mes espoirs et beaucoup de ma gratitude,


-68li204-

6 réponses

Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
26 septembre 2005

hello hello cher amis...

je me suis mis à la prog orientée objet depuis qq mois, aprés moultes péripécies et plantages je suis enfin arrivé grâce aux nombreux forums et cours onlines a créer une ptite appli VB.net.

comme le pb soulevé ici est le premier mur qu'il m'a fallu franchir je vais vous aider...

d'abord il faut savoir que chaque formulaire est un objet qui a herité de la class windows.forms.form
donc on créer les formulaire grâce à une classe préprogrammée (dans le framework je pense)

comment faire:

* dans la fenêtre des propriétés de votre formulaire principal mettez IsMDIcontainer à "true" cela permettra à cette fenetre d'être la fenetre "partent" ( MDI: Multi Device Interface = interface à fenêtre multiples")

* ensuite dans la méthode que vous voulez (de la classe de votre formulaire parent)
vous instancez (créez) votre formulaire dite "fille" comme ceci:

Dim FilleActive As System.Windows.Forms.Form
FilleActive = New NomduFormFille
FilleActive.MdiParent = Me
FilleActive.Show()

comme par magie vous verrez apparaitre le form NomduFormFille

Maintenant trois choses indispensables à savoir:

1 - tous les attributs (variables en non objet) des formulaires qui communiquent doivent être déclaré "Public" ou au moins "Friend". (Dim bloque la transimission des données)

si vous avez déclaré dans NomduFormFille
Friend monNom as String = "DALS"
vous pouvez alors récupérer la valeur de l'attribut monNom dans FormParent comme ceci:
Friend nomDéclaréDansFille as String = NomduFormFille.monNom

2- Si vous tapez dans NomduFormFille:
Me.Hide()

ou bien dans le form Parent:
NomduFormFille.hide()

vous cacherez la fenetre mais elle sera toujours en mémoire ainsi les attributs de NomduFormFille seront toujours accessibles.
de plus en mettant
NomduFormFille.show() dans n'importe qu'elle classe (du projet) vous la ferait réapparaitre

3- Au contraire:
Me.close() ferme la fenêtre et detruit l'objet ainsi que tous ses attributs en mémoire

Voilà...

Amusez vous bien

DALS
Keep on coding but don't forget to share everything!
that's the way
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
pas sous VB
VB.NET !!!!
désolé, aucune compétence

sous VB, tu peux utiliser un contrôle en l'appelant avec référence de sa form :

call Form16.CommandButton45_Click()
Form3.Label4.Caption = "traitement"

peut-être est-ce la même chose

openfiledialog, je suppose que c'est particulier, donc .... RAS
menus, peut-être pourrais-tu capturer la position de la souris, et si elle se trouve au dessus d'un menu, envoyer un message simulant le click, et donc déroulant le menu....

mais à coté de çà, çà me semble assez..... inutile voire génant. tout dépend de ton appli, mais à supposer qu'il y ait des champs à remplir sur la form, perso, je bouge ma souris "violemment" pour ne pas avoir un curseur I me cachant certaines lettres.
j'aurais sans doute encore moins envie que ce mouvement de souris implique un menu qui lui, me cachera encore bien plus de surface.... (non?)

bonne soirée
PCPT
Messages postés
3
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
4 août 2005

Merci tout de même. En surfant j'ai entendu parler d'un système "MDI" qui serait l'appelation de ce que je recherche, je vais creuser.
Bonne soirée à vous,


-68li204-
Messages postés
3
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
4 août 2005

Merci. Que voila une explication concise, et plus compléte même que le cours en ligne que je m'étais dégoté entre temps. Vous avoir eu pour collaborateur fut un plaisir.

En espérant pouvoir vous rendre la pareille,


-68li204-
Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
26 septembre 2005

Merci!

Et surtout grand merci au site de M. Plasserre, la bible du débutant:
http://plasserre.developpez.com
Messages postés
10
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
26 septembre 2005

Je viens de lire plus en détail ta première question :

Pour ce qui est du OnMouseOver pour ton menuItem, il faut que tu créer une class qui hérite de menuItem (je crois) et tu y surcharge ta sub liée à ton event onMouseOver (overloads overrides)

Pour ce qui est de la class menuitem va sur le site de c2i.fr il y a un bon tuto!