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 :

Réflexion sur liste de champs


Sujet :

C#

  1. #1
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut Réflexion sur liste de champs
    Bonjour,

    Je cherche à faire de la réflexion sur des champs. Donc j'ai mon form qui possède 7 picturebox et je veut le remplir dans une boucle de parcours.

    J'ai essayé plusieurs choses sans y arriver. Que faut il utiliser pour pouvoir faire ce genre de choses?

    Merci

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach (Control c in this.Controls)
          {
            if (c is PictureBox)
            {
              ...
            }        
          }
    Est-ce ceci que tu cherches ??

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    En faite je souhaite y accéder via un String. Car le numéro de la picturebox correspond à un autre numéro. Donc style "pictureBox" + num j'avais oublié de le préciser

  4. #4
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    C'est quand même pas clair....
    Pourrais-tu un peu préciser ?

  5. #5
    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 : 37
    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
    Il suffit de modifier un peu le code, je pense que ceci peut fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach (Control c in this.Controls)
    {
        if (c is PictureBox)
        {
            if(c.Name == "PictureBox"+num.ToString())
            {
              ...
            }
        }        
    }
    Il faut bien évidemment que num soit un entier et soit initialisé.

    Tu peux aussi mettre ce code dans un for qui incrémenterait num, afin d'accéder à toutes les pictureBox de ton formulaire.
    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.

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ceci me pose un peut soucis car si on se retrouver avec un form qui possède énormément de contrôle, à chaque remplissage de picturebox on à une boucle qui devient quand même conséquente. Je souhaite en plus porter mon appli sur SmartDevice. Il n'y a pas un autre moyen d'accéder directement à un Control via son nom stocké dans un String?

  7. #7
    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 : 37
    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
    A moins de les stocker dans un Dictionary<Stirng, Control> avant de les ajouter aux Controls de la form, je ne vois pas...
    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.

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    En appliquant la réflexion sur la class qui contient les controls on ne peut pas arriver à accéder à la propriété image? J'ai essayé mais je ne suis pas assez expert dans la réflexion. Si quelqu'un avait une idée

  9. #9
    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
    Pour le coup, c'est super simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control c = this.Controls["NomDuContrôle"]

  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 : 37
    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
    Rah, et c'est pourtant évident ! Dire que je n'y avais jamais pensé
    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 Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bon j'ai quand même réussi via la réflexion pour ceux que ça peut intéresser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FieldInfo f = GetType().GetField("pictureBox" + i, BindingFlags.NonPublic | BindingFlags.Instance);
    if(f.GetValue(this) is PictureBox) {
    	PictureBox p = (PictureBox)f.GetValue(this);
    	p.Image = image;
    }
    Merci à tous

  12. #12
    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
    Si tu veux casser une noix avec un météore, libre à toi, mais je te conseille d'utiliser un bon vieux casse-noix

  13. #13
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    J'utilise le code que tu a donné Auquel je n'ai pas pensé non plus. Je voulais faire compliqué alors qu'il est possible de faire simple!

    C'est juste que comme j'étais parti dans la recherche d'un accès via réflexion je voulais aller jusqu'au bout

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

Discussions similaires

  1. Liste déroulante basée sur un même champ dans plusieurs tables
    Par theclaw dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/04/2011, 18h58
  2. critere sur zone de liste ou champs
    Par salfati dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/11/2010, 15h55
  3. Clause where sur liste de champs
    Par SelectEtoile dans le forum Développement
    Réponses: 3
    Dernier message: 04/02/2010, 22h41
  4. Réponses: 0
    Dernier message: 20/06/2009, 09h12
  5. [MySQL] Affichage auto de champs par clic sur liste déroulante
    Par Mister Shell dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/12/2006, 12h08

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