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

Windows Forms Discussion :

Gestion multi fenêtrage


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut Gestion multi fenêtrage
    J'ai beau cherché, je ne vois pas comment gérer les différentes fenetres de mon application ... je m'explique :

    Mon application comprend un certain nombre de fenetres qui sont instanciés par un Form principal à l'ouverture de celle ci. Et j'aimerai pouvoir acceder aux instances initialement créé depuis n'importe laquelle de ces fenetres quelquesoit où je me trouve dans l'application.
    Prenons un exemple :
    Soit une fenetre mère A, qui instancie des fenetre filles B et C
    Comment depuis B, utiliser l'instance de C ???
    Car pour le moment, j'utilise des accesseur depuis A, mais c'est franchement pas l'idéal.


    Est-ce que cela est possible ?? quelqu'un aurait une idée ??

  2. #2
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Je pense avoir trouvé une solution :

    Je délègue les evenement de B et de C dans A, ce qui fait que je gère toutes les fenêtre depuis la fenêtre mère A.

    Si quelqu'un à une meilleure solution, je suis preneur ....

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Il suffit de créer une classe de type Singleton et d'y mettre des références des fenêtres au fur et à mesure qu'elles apparaissent.

    Au Form_Load, tu ajoutes la fenetre nouvellement créé dans la classe.
    Au Form_Closing, tu les retires.

    Lorsque tu as besoin d'une instance depuis ou que ce soit dans le code, tu demandes simplement le singleton.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Merci, je vais essayer d'orienter mes recherches dans ce sens là .....

    Je pense qu'il peut être interessant quand meme de deleguer tous les evenement faisant intervenir la fenetre mère, ca evite de faire des cast à n'en plus finir ...

    Donc je vais opter pour faire un mix de ces deux idées !! héhé

  5. #5
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Un cast? Comment ça?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Désolé j'ai écrit trop vite, oui si j'ai accès aux instances de toutes les fenetres depuis n'importe où le problème ne se pose pas ....

    Bref, je vais essayer de faire quelquechose qui fonctionne , et je mettrais le resultat en ligne pour ceux qui cherchent !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Et je dois créer un singleton par fenetre à gérer ???

  8. #8
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Ca depend, tu peux très bien créer un seul singleton qui contient tout ce dont tu as besoin.

    Si tu arrives à me donner quelques détails sur ce que tu essaies de faire ainsi que pourquoi tu as besoin de pouvoir atteindre les autres fenetres. Je peux sans doute te trouver une solution.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    OK, parce je galère à comprendre le principe j'avoue ....

    J'ai une classe mère A qui peut ouvrir une fenetre fille B gérant un DataGridView dont le BindingSource est une propriété de A. A peut également ouvrir une fenetre C affichant les détails de la ligne sélectionné du DataGridView de la fenetre B. Et enfin, B peut appeller directement C et inversement. Mais B et C ont aussi besoin d'avoir accès à A, car elle possède des méthodes utilies pour l'application entière.

    J'espère avoir été clair .... donc du coup, il faut qu'une seule instance de chaque fenetre soit ouverte à la fois, et il faut que je puisse acceder aux methodes de chacunes d'entres elles.

  10. #10
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    La bindingsource tu peux la lancer dans le constructeur de B et de C sans problème.
    Dans C, tu peux souscrire l'evenement CurrentChanged du bindingsource passé en paramètre de tel manière à actualiser les détails lorsqu'un changement se produit dans le gridview de B sans rien savoir de B.

    Pour ce qui est des "méthodes utiles a l'application entière" dans A, il faudrait essayer de les externaliser, du code spaghetti entre fenêtre c'est la pire des choses. Cependant...
    Pour faire trash, tu peux créer une classe, même statique à la rigueur si t'aime pas les singletons, contenant les références vers A, B, C et affecter leur propriété respective au moment ou tu les ouvres, les mettre a null sitot qu'elles sont fermées. Et cet objet tu y accèdes depuis n importe ou dans l'applic.

    Mais quand même, c'est une architecture qui peut devenir assez vite pourrave. Je me pose bien la question de ce qui peut nécessiter tant d'interaction entre des forms.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Jsuis en train de faire une gestion d'adherent qui ressemble l'image jointe au post, d'où la necessité d'avoir des interaction entre les fenetres pour pouvoir rebondir n'importe où dans l'appli.

    Merci au fait des explications, j'ai créé un singleton dans lequel j'ai declaré mes classes correspondant à mes Form, et c'est nikel, chacune ne s'execute qu'une seule fois , et chacune est accessible quelquesoit l'endroit où je me situe dans le programme !!

    Images attachées Images attachées  

  12. #12
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    De rien,
    Joli look and feel!

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    bonjour...
    je peux pas t'aider mais j'ai vu le look de ton appli et je suis séduit comment tu fais pour avoir des control comme ca...c'est des truc perso?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    .... windows vista et une collection d'images pour le look

    Merci , en tout cas !

Discussions similaires

  1. Problème de multi-fenêtrage
    Par mojojojo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2006, 16h24
  2. Gestion multi-langues et JMenuItem
    Par TheReturnOfMuton dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/06/2006, 15h08
  3. [Delphi.net] : Gestion multi form
    Par PH69 dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 20/03/2006, 22h04
  4. Gestion multi-utilisateur
    Par charliejo dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/01/2006, 02h45
  5. [Fichier] Gestion multi accès d'un fichier
    Par Rayek dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2005, 14h21

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