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 :

Créer des controls


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Par défaut Créer des controls
    Salut

    Je souhaiterai créer des controles dynamiquement.
    Le problème c'est que je ne sais pas à l'avance combien j'aurai d'élément.

    Si je fais dans une boucle quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.Windows.Forms.RadioButton radio = new System.Windows.Forms.RadioButton();
     radio.Name = "test";
     ...
    mes boutons vont tous s'appeler radio pour la suite du programme et je ne serai pas comment accéder à 1 en particulier.

    voilà mon problème donc

    merci d'avance pour toute aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    si tu fais cela dans une boucle, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(int i = 0; i < nbButton;i++)
    {
       Button b = new Button();
       b.Name = "button" + i.ToString();
       Controls.Add(b);
    }
    Non ?

    The Monz, Toulouse

  3. #3
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Ou sinon un ArrayList de boutons... [/méthode bourrin]

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    si tu fais cela dans une boucle, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(int i = 0; i < nbButton;i++)
    {
       Button b = new Button();
       b.Name = "button" + i.ToString();
       Controls.Add(b);
    }
    Non ?

    The Monz, Toulouse
    merci pour la réponse

    Non en fait parce que dans le reste du code c'est b qu'il faudra utiliser pour nommer le controle et pas button1... (b.focus fonctionne mais pas button1.focus par exemple)
    là est tout le prob

  5. #5
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par le_ben Voir le message
    Non en fait parce que dans le reste du code c'est b qu'il faudra utiliser pour nommer le controle et pas button1
    Controls est une collection de contrôles, si tu connais le nom du contrôle tu peux donc y accéder avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control ctrl = Controls["button1"];

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 133
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Controls est une collection de contrôles, si tu connais le nom du contrôle tu peux donc y accéder avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control ctrl = Controls["button1"];
    Non plus, le string ne passe pas pour l'accés le compilateur réclame un entier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control ctrl = Controls[1]
    par exemple.
    Après je peux faire une fonction qui permet de parcourir la collection controle pour obtenir l'index et donc pouvoir utiliser l'élément mais ça me paraît pas top comme solution.

  7. #7
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par le_ben Voir le message
    Non plus, le string ne passe pas pour l'accés le compilateur réclame un entier.
    Tu utilises le framework 1 donc, ce serait bien de préciser cette information la prochaine fois en le mettant dans le titre du sujet ("[C# 1.1] Comment créer des contrôles dynamiquement ?" par exemple). On évitera de dire des bêtises comme ça

    L'autre solution c'est d'utiliser une Hashtable pour faire le même travail, tu stockes le nom du contrôle et l'instance du contrôle sous forme d'une clé/valeur et après tu pourras facilement les récupérer.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/06/2009, 16h10
  2. créer des cadres autour des controles dans un état
    Par isabelle b dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/12/2008, 14h01
  3. Créer des controles utilisateur dynamique
    Par oclone dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/10/2008, 13h42
  4. créer dynamiquement des controles
    Par WELCOMSMAIL dans le forum ASP.NET
    Réponses: 10
    Dernier message: 07/11/2007, 13h02
  5. créer des control dynamiquement ?
    Par dimmu dans le forum ASP.NET
    Réponses: 4
    Dernier message: 10/05/2007, 10h47

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