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

C# Discussion :

Plusieurs instances d'une forme


Sujet :

C#

  1. #1
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut Plusieurs instances d'une forme
    Bonjour,

    J'ai une forme MDI, j'y est créé un menu à partir duquel je charge une forme fille.
    Cela fonctionne bien.

    J'ai par contre un comportement étrange quand je re-clique sur ce menu.
    Je m’aperçois que je peux charger -dans mon MDI- autant de formes que je veux ! plusieurs instances de la même forme (problème qui ne se posait pas en VB.NET).

    Avez-vous une idée pour solutionner à cela ?

    D'avance merci.

  2. #2
    Membre actif
    Avatar de fmdao
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Points : 210
    Points
    210
    Par défaut
    C'est le principe, non ?

    Ce sont des instances différentes d'une même classe.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 180
    Points : 4 496
    Points
    4 496
    Par défaut
    C'est un peu le but d'un mdi :p
    Si tu veux reellement autoriser qu'un seul type de fênetre
    Comme ca rapidement je dirai qu'il faut cree une List<Form> ou tu stockeras les Form crees, t'enregistrer sur le FormClose pour supprimer la form de la liste quand l'utilisateur la ferme.
    Et parcourir cette list pour voir si il existe déjà une form de type X dans cette liste

    Ou alors passer par le Singleton pattern surement plus propre

  4. #4
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Non.

    Je te donne un exemple.
    Quand tu travaille sur une application, n'importe, une seule forme est affiché une seule fois à partir de l'endroit où on l'appelle, si on re-clique sur tel menu qui charge cette même forme rien ne se passe !
    Dans mon cas, je peux charger la même forme autant de fois que je veux, ce n'est pas normal.

  5. #5
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Salut Benoit,

    Non, pas tout à fait.
    Une MDI, je sais bien ce que sait! le but de cette dernière est de pouvoir charger plusieurs formes différentes dans le même conteneur. on est bien d'accord.
    Mon problème se pose au niveau de la même forme, que je peux en cliquant sur le même menu de la charger mille et une fois ..! vois-tu ?

  6. #6
    Membre actif
    Avatar de fmdao
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Points : 210
    Points
    210
    Par défaut
    Mais si c'est normal, il faut simplement mémoriser l'instance qui est crée.

    Par exemple dans une liste comme le suggère BenoitM.

  7. #7
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    C# me désespère. Je n'avais pas autant de contraintes quand je développais en VB.NET
    cette option est disponible sur les projets Winforms VB.Net, ce qui rend l'application à instance unique...

  8. #8
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    Citation Envoyé par tssi555 Voir le message
    C# me désespère. Je n'avais pas autant de contraintes quand je développais en VB.NET
    Si j'étais c.., je te dirais de faire ton projet en VB.Net, c'est pas en critiquant C# que tu vas avancer. Néanmoins, je suis C# à fond plutôt que VB, donc là dessus on ne va pas s'entendre (et en plus t'es sur le forum c#)

    Bref, Il faut que tu saches quel est ton élément discriminant, càd, qu'est ce qui fait que c'est la même fenêtre? Même instance d'une même classe? Manipulation du même objet (au sens large : instance d'une classe, même fichier sur le disque, etc )? j'en passe...

    Ensuite, la solution que t'a proposé BenoitM convient bien à ton problème (petit bémol : si tu les crées dans ton formulaire MDI parent, utilise la propriétés MdiChildren). Avant de créer une nouvelle fenêtre vérifies qu'une fenêtre ayant les mêmes éléments discriminants ne soit pas déjà ouverte...

    Vive le C#

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par tssi555 Voir le message
    C. Je n'avais pas autant de contraintes quand je développais en VB.NET
    C'est par ce que tu devais utiliser une aberration de VB.Net héritée de VB6 et (malheureusement conservée par Microsoft) qui consite à créer une instance de form par défaut. Il est bien évidemment plus que recommandé de ne pas utiliser cette verrue.

  10. #10
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Ok ok, ne frappez pas !
    Je n'irai pas jusqu’à dire vive C# tant que je suis encore à la découverte...
    En tout cas merci pour vos réponses, j'ai trouvé, en utilisant un singleton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/08/2012, 16h26
  2. Plusieurs instances d'une même BDD
    Par remax_ren dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 05/02/2008, 09h53
  3. creation de plusieurs instance sur une meme machine
    Par niro75 dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 23/05/2007, 10h02
  4. plusieurs instances d'une base
    Par big1 dans le forum Oracle
    Réponses: 1
    Dernier message: 23/11/2006, 11h57
  5. Réponses: 2
    Dernier message: 26/10/2006, 10h13

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