IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème de contrôle d'une form parent depuis une form fille


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Points : 23
    Points
    23
    Par défaut Problème de contrôle d'une form parent depuis une form fille
    Bonjour à tous,

    Mon problème est le suivant, et j'ai beau chercher sur le net, je ne trouve pas où est l'erreur ...

    Depuis ma form principale, j'ouvre une deuxième form avec un showdialog. A partir de la form fille, je peux encore utiliser les contrôles de la première form.
    Depuis la deuxième form, j'ouvre une troisième form, toujours à l'aide d'un showdialog. Mais cette fois, je n'arrive pas à utiliser les contrôles de la deuxième form ... Comment faire pour pouvoir utiliser les contrôles de la deuxième form depuis la troisième ?

    Merci beaucoup à vous !

    Bonne journée !

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 60
    Points : 100
    Points
    100
    Par défaut
    Et bien tiens au courant si tu n'as pas trouvé ,mais sache que ça relève surtout d'un gros problème conceptuel quand même

  3. #3
    Membre averti
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    En principe, sauf erreur de ma part, un form2.showdialog() bloque l'accès aux contrôles de la form1. Etonnant que vous puissiez continuer à utiliser les contrôles...

    Moins étonnant par contre que sur la form3 vous ne puissiez plus accéder aux deux autres form. Pour ouvrir une fenêtre, tout en continuant à accéder à la form "mère", commander dans la form2 :

    En mode lecture/écriture.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    avec le code des 2 fenêtres nous verrons un peu plus clair, merci

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Points : 206
    Points
    206
    Par défaut
    Je ne vois pas pourquoi ça ne fonctionnerait pas.

    Pour moi .showDialog est un mode d'affichage protégé. Il ne restreint en rien l'accès aux contrôles des autres fenêtres ouvertes.

    J'ai fait le test : 3 Forms contenant chacune un TextBox et un bouton.
    Le bouton de la Form1 ouvre la Form2 avec .showDialog.
    Le bouton de la Form2 ouvre la Form3 avec .showDialog.
    Enfin le bouton de la Form3 affecte au TextBox de la Form3 le contenu du Textbox de la Form1... Et ça marche ! CQFD

    A mon avis le problème est ailleurs...

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Sans voir ton code difficile de t'aider.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par mdevaux62 Voir le message
    Je ne vois pas pourquoi ça ne fonctionnerait pas.

    A mon avis le problème est ailleurs...
    Tu parles d'accès programmatique. Hervé parlait d'accès utilisateur avec clavier/souris. Pour l'utilisateur, les formulaires parents sont visuellement inaccessibles.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu devrais créer une classe permettant d'orchestrer la navigation. Elle serait responsable de l'ouverture et la mise à jour des fenêtres. De cette manière plus de problème de savoir comment accéder au parent.
    Les fenêtres rappellent le chef d'orchestre si besoin et ce dernier s'occupe de potentiellement mettre à jour d'autres éléments graphiques.

    Cette notion de chef d'orchestre est fondamentale dans de nombreux patterns (MVC, MVVM, ect.)
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Tu parles d'accès programmatique. Hervé parlait d'accès utilisateur avec clavier/souris. Pour l'utilisateur, les formulaires parents sont visuellement inaccessibles.
    Je n'ai jamais parlé d'accès utilisateur avec clavier/souris, j'ai bien compris qu'Hipopo veut accéder à ces fenêtres par programmation, c'est pour cela que je demande à voir le code.

    Citation Envoyé par mdevaux62 Voir le message
    ...
    Enfin le bouton de la Form3 affecte au TextBox de la Form3 le contenu du Textbox de la Form1... Et ça marche ! CQFD
    ...
    Bien sur qu'en mettant le nom des fenêtres en dur dans le code cela fonctionne. Mais ce n'est pas une bonne pratique en POO.

    En fait j'attendais de voir la façon dont Hipopo a procédé. (Pour d'abord l'aider à résoudre son problème par rapport a ce qu'il a fait)
    Et par exemple lui proposer d'utiliser une classe, classe qui permet d'instancier un objet que l'on passe en paramètre aux fenêtres, et qui permet aux fenêtres filles d'être totalement indépendantes. (aucun nom de fenêtre parent en dur dans les filles)

    Citation Envoyé par SaumonAgile Voir le message
    Tu devrais créer une classe permettant d'orchestrer la navigation. Elle serait responsable de l'ouverture et la mise à jour des fenêtres. De cette manière plus de problème de savoir comment accéder au parent.
    Les fenêtres rappellent le chef d'orchestre si besoin et ce dernier s'occupe de potentiellement mettre à jour d'autres éléments graphiques.

    Cette notion de chef d'orchestre est fondamentale dans de nombreux patterns (MVC, MVVM, ect.)
    Cette solution est très intéressante.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. Actualiser une div Parent depuis une IFRAME enfant ?
    Par Marmotton76 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2012, 12h45
  2. Réponses: 2
    Dernier message: 18/09/2012, 14h58
  3. Réponses: 5
    Dernier message: 03/08/2011, 14h10
  4. Réponses: 5
    Dernier message: 09/03/2007, 10h07
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo