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 :

Variable dynamique et ComboBox-userControl


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut Variable dynamique et ComboBox-userControl
    Bonjour à tous,

    petit débutant que je suis je flanche sur 2 ""problèmes"" et je ne trouve aucunes réponses.

    1er hic :
    Comment faire pour créer des variables avec un nom dynamique ? J'ai 50 variables à créer, j'aimerai bien faire une simple boucle et hop "nomdemavariable_i" avec le 'i' (1,2,3,4...) de la boucle.
    Enfaite j'aimerai créer selon le contenu d'un fichier texte, x Contrôle utilisateur (préalablement fait), d'où la déclaration de noms dynamiques.
    Pas d'autre choix que de créer un tableau ?

    2ème hic
    J'ai créé un Contrôle Utilisateur avec un comboBox dedans. J'aimerai que l'on puisse modifier la propriété "Items" depuis le designer de VS. J'ai donc implémenté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            public ComboBox.ObjectCollection ItemCombo1
            {
                get
                {
                    return comboBox1.Items;
                }
                set
                {
                    comboBox1.Items.Add(value);
                }
            }
    Ce code marche très bien si je veux compléter la collection avec du code, mais via le designer ... impossible c'est en lecture seule. Ce n'est pas très important, mais j'aimerai bien comprendre pourquoi cela ne marche pas via le designer.

    Voila merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Par défaut
    Pour ta première question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 0; i < 20; i++)
    {
    Button b = new Button();
    b.Name = "Nom" + i.ToString();
    b.Parent = ...
    }
    Pour ta deuxième question, je ne sais pas, je suis désolé, mais je pense que pour le designer il y a des règles bien précises à respecter

  3. #3
    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
    Question 2 :

    Tu peux toujours faire un truc du genre pour que le designer te le montre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Combobox box
    {
    get{return taComboBox;}
    }
    C'est ce qu'il y aurait de plus "rapide" pour accéder à "ton" composant

    The Monz, Toulouse

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par zoubidaman Voir le message
    Pour ta première question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 0; i < 20; i++)
    {
    Button b = new Button();
    b.Name = "Nom" + i.ToString();
    b.Parent = ...
    }
    Enfait il n'y a pas forcément de propriété "Name". Admettons que je veuille créer 50 int, pour pouvoir les utiliser il me faut bien un nom différent (ou un tableau). Ce serait donc par exemple créer une variable de part un string.
    En gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string monstring = "123";
    int i_monstring;
    le int s'appelerai donc "i_123"

    Est-ce possible en c# ? (en dehors de la possibilité via la meta-programmation)
    _______________________

    Citation Envoyé par theMonz31 Voir le message
    Question 2 :

    Tu peux toujours faire un truc du genre pour que le designer te le montre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Combobox box
    {
    get{return taComboBox;}
    }
    Oui j'y avais pensé, mais c'est un peu barbare. Il doit effectivement y avoir une condition que je ne rempli pas.

    Merci encore

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Citation Envoyé par Jaktens Voir le message
    Est-ce possible en c# ? (en dehors de la possibilité via la meta-programmation)
    C'est juste complètement moche...

    Pourquoi ne pas créer une collection avec paire clef / valeur?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut
    Ce que j'ai fait

    Merci pour vos réponses !

  7. #7
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par Chubyone Voir le message
    C'est juste complètement moche...
    Et que c'est inexploitable : les noms des variables ne servent qu'à la compil, au runtime on y a plus accès ; à quoi ça servirait de créer un int nommé "int1" si on y a pas accès en statique ?

    Bref : utilise un int[] / une List<int>, c'est fait pour ça

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut
    (Je mets cette question sur le coup de la fatigue de toute façon )

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

Discussions similaires

  1. [XL-2010] Création dynamique de combobox -> j'en perds ma variable !
    Par Julien12 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/05/2012, 09h19
  2. Variables dynamiques
    Par CriPpLe dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 11h56
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51
  5. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01

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