Référencer l'instance d'un formulaire depuis un autre formulaire qui n'est pas son créateur.
1 réponse
Gilbert VINCK
Bonjour,
Une instance de formulaire Windows "instance frm A" crée et affiche une
instance de formulaire "Instance frm B" (ShowDialog)
Comment agir sur "instance frm A" depuis "Instance frm B" ?
Exemple :
"instance frm A" est un formulaire qui présente une liste de données à
l'utilisateur.
Un bouton "Ajouter" de cet "instance frm A" ouvre "Instance frm B"
- dans "Instance frm B" :
- l'utilisateur saisie une nouvelle ligne de données (présentée
sous forme de fiche).
- Un bouton "Enregistrer et ajouter" de ce "instance frm B" lui
permet d'enregistrer cette nouvelle fiche et
d'en ajouter une nouvelle sans refermer "Instance frm B"
COMMENT METTRE A JOUR LA LISTE RESTEE EN ARRIERE PLAN DANS
"instance frm A" POUR Y AFFICHER LES NOUVELLES LIGNES AJOUTEES DANS
"Instance frm B" ?
Mon PB est que je ne sais pas référencer une instance de formulaire depuis
un autre formulaire qui n'est pas son créateur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Bonjour,
Mon PB est que je ne sais pas référencer une instance de formulaire depuis un autre formulaire qui n'est pas son créateur.
Merci d'éviter les cross post massifs.
Une première solution consiste à renseigner la propriété Owner de Form2 avec la référence à Form1.
Form2.Owner = Form1
L'inconvénient est que le comportement des 2 forms va être lié (voir doc de la propriété Owner). Même raisonnement avec les propriétés Parent et ParentForm. A vous de voir si le comportement qui en résultera vous convient.
Une autre solution plus élégante et moins contraignante consiste à ajouter dans la classe Form2 un nouveau constructeur (new) qui prend en argument la référence au formulaire "parent".
Dim f2 As New Form2(Form1)
Dans le constructeur, vous stockez cette référence dans une variable privée et vous vous en servez quand vous en avez besoin.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Mon PB est que je ne sais pas référencer une instance de formulaire
depuis un autre formulaire qui n'est pas son créateur.
Merci d'éviter les cross post massifs.
Une première solution consiste à renseigner la propriété Owner de Form2
avec la référence à Form1.
Form2.Owner = Form1
L'inconvénient est que le comportement des 2 forms va être lié (voir doc
de la propriété Owner). Même raisonnement avec les propriétés Parent et
ParentForm. A vous de voir si le comportement qui en résultera vous
convient.
Une autre solution plus élégante et moins contraignante consiste à
ajouter dans la classe Form2 un nouveau constructeur (new) qui prend en
argument la référence au formulaire "parent".
Dim f2 As New Form2(Form1)
Dans le constructeur, vous stockez cette référence dans une variable
privée et vous vous en servez quand vous en avez besoin.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Mon PB est que je ne sais pas référencer une instance de formulaire depuis un autre formulaire qui n'est pas son créateur.
Merci d'éviter les cross post massifs.
Une première solution consiste à renseigner la propriété Owner de Form2 avec la référence à Form1.
Form2.Owner = Form1
L'inconvénient est que le comportement des 2 forms va être lié (voir doc de la propriété Owner). Même raisonnement avec les propriétés Parent et ParentForm. A vous de voir si le comportement qui en résultera vous convient.
Une autre solution plus élégante et moins contraignante consiste à ajouter dans la classe Form2 un nouveau constructeur (new) qui prend en argument la référence au formulaire "parent".
Dim f2 As New Form2(Form1)
Dans le constructeur, vous stockez cette référence dans une variable privée et vous vous en servez quand vous en avez besoin.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr