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 :

Variable dans le nom d'un formulaire


Sujet :

Windows Forms

  1. #1
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut Variable dans le nom d'un formulaire
    Bonjour,

    Dans mon application, l'utilisateur peut ouvrir plusieurs formulaires de même classe. Je voudrai leur donner un nom qui dépend d'une variable.

    J'ai tenté ça, mais c'est la cata!
    Je ne sais pas si c'est réalisable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    public void DupliquerConsultRef()
            {
                NumConsultRef ++;
                string a = String.Concat("ConsultRef",NumConsultRef.ToString());
                MessageBox.Show(a);
                public F_ConsultRef "a" = new F_ConsultRef(this,ConsultSearch);
                ConsultRef.Closed += new EventHandler(OnFormClosed);                       
                formCount++;
                "a".Show();
            }
    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Je comprends pas trop ce que tu veux faire. C'est générer un nom de variable dynamique pour différencier tes différentes instances de formulaire?
    C'est difficilement réalisable, à part en utilisant la compilation dynamique. (perso, jamais utilisé).
    Pourquoi ne pas simplement mettre toutes ces instances dans une liste?

  3. #3
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    En fait losrque que l'utilisateur clique sur un bouton il lance la fonction Dupliquer. Alors un nouveau formulaire est créer. Alors j'ai NumConsultRef qui s'incrémente et je voudrai que cette variable apparaisse dans le nom du nouveau formulaire.

    Je ne vois pas exactement ce que tu veux dire par "mettre toutes ces instances dans une liste".

  4. #4
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    List<F_ConsultRef> myForms = new List<F_ConsultRef>();
     
    myForms.Add(new F_ConsultRef);
    Mais il serait intéressant de savoir pourquoi tu cherche à faire ça, afin de voir si il n'y aurait pas un autre moyen de faire.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    J'ai 2 formulaire qui communique.

    ConsultSearch recherche a partir de ce que lui rentre l'utilisateur et au final on a une ref de piece un client et un fournisseur

    Le 2éme formulaire ConsultRef se met à jours automatiquement et affiche des information particulière sur la pièce.

    Mais un utilisateur pourrai vouloir garder les info d'une piece et en chercher une autre.

    Il y a donc un bouton dans consultRef qui appelle la fonction dupliquer. Cette fonction permet de conserver les info de la piéce actuelle dans un formulaire de type F_ConsultRef mais qui ne se mettrait plus à jour. On se retrouve donc avec 2 consult ref, 1 qui se met a jour comme avant et 1 qui est fixe et affiche toujours les même info.

    Je ne sais pas si c'est clair!

  6. #6
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Une solution qui me parait plus simple serait tout simplement d'instancier un nouveau F_ConsultRef à chaque recherche.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pas lu les réponses, mais si tu veux avoir une nom de variable qui te donne l'instance, il faut utiliser un dictionnaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim d as new system.Collections.Generic.dictionary(of string, form)
    d.Add(nom de la variable as string,instance de la form)
    après tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d(nom de la form as string).show
    (désolé c'est du vb.net, mais ca doit etre compréhensible et sinon il y a des convertisseurs sur le net)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Ou en C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary<String, Form>();
    d.Add("nom de la variable as string", instance_de_la_form)
     
    d["nom de la form"].Show()
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  9. #9
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    Ok donc avec ça on créer uennouvelle instance du même formulaire.

    Ca me va, mais moi je voudrai que mon double soit un peu différent.
    Je ne veux pas qu'il se mette à jours et je veux rendre visible et actif un bouton close.

    Comment je fais dans ma classe F_ConsultRef pour qu'il ai 2 facons de s'instancier?

    Si instanciation de type A alors tu laisse visible le bouton dupliquer et tu cache le bouton close et tu mets a jours lorsque l'événement misajours est déclenché.

    Si instanciation de type B alors tu met le bouton close visible et le bouton dupliquer caché et tu ne te met pas a jour.

  10. #10
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Un booléen en paramètre du constructeur, il est là pour ça.

    Ok donc avec ça on créer uennouvelle instance du même formulaire.
    ça dépend de quoi tu parle. Avec le Dictionnaire, tu va te contenter de les stocker et de pouvoir les retrouver via une clé de type String.

    Le plus simple reste de créer un nouveau formulaire à chaque recherche, vu qu'apparemment "programmatiquement" parlant tu n'as pas besoin des références.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    C'est bon ça marche d'enfer!
    Vous êtes trop forts

    J'ai ma variable Reference qui est public.

    Lorsque j'instancie mon nouveau formulaire comme c'est une instanciation de type B : recharche les données pour Reference.

    Le booléen c'est tout simple mais il faut y penser et surtout ça marche!

    A la prochaine

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/08/2007, 14h44
  2. Creation d'une table avec variable dans le nom
    Par 3vilsnake dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/07/2007, 17h49
  3. Concaténation de variables dans un nom de variables ?
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2007, 03h51
  4. Utiliser des variables dans les noms d'objet
    Par Torkan dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/03/2007, 23h54
  5. Réponses: 3
    Dernier message: 29/05/2006, 23h46

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