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 :

Index dans objets form


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut Index dans objets form
    Bonjour

    j'ai une ptite question : est-ce qu'il est possible d'indexer des objets pour récupérer les valeurs dans une boucle for

    je m'explique : j'ai 5 labels nommé label1, label2, ... label5

    je voudrais faire une boucle du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                for (int i = 1; i <= 5; i++)
                {
                   tableauLabel[i] = label(n° index i).Text;
                }
    Merci

    @++

    KaloOopS

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    List<Label> tableauLabel=new List<Label>() ;
    tableauLabel.Add(null) ; // à cause de label0 qui n'est pas défini ! 
    for (int i = 1; i <= 5; i++)
        tableauLabel.Add(MyParentPanel.Controls["label"+i.ToString()] ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    heu

    que dois-je mettre a la place de MyParentPanel ??

    ca me renvoie : MyParentPanel n'existe pas dans le contexte actuel

    ha vi ptit correctif à ma demande c'était pour des TextBox et non pas des Label .. désolé m'embrouille pour l'instant dans tous ces termes

    merci

    @++

    KaloOopS

    PS : il manquait un ")" a la fin de la ligne ... ... rhooo comme je me la pète ... ping pang aie pas taper

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    que dois-je mettre a la place de MyParentPanel ??
    Le Control (Panel, Form, TabPage, ...) qui contient les labels ou les TextBox.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    désolé mais ca ne marche pas ou du moins je ne sais pas comment faire

    tu peux donner un bout de code avec une appli toute neuve

    allez un ptit échange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                List<Label> tableauLabel=new List<Label>() ;
                tableauLabel.Add(null) ; // à cause de label0 qui n'est pas défini ! 
                for (int i = 1; i <= 5; i++)
                    tableauLabel.Add(WindowsFormsApplication1.Form1.Controls["label" + i.ToString()]);
            }
        }
    }
    merci

    @++

    KaloOopS

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Le code suivant permet de stocker le texte des labels Label1 à Label5 dans une liste (tableau dynamique).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<string> tableauLabel = new List<string>() ;
    for (int i = 1; i <= 5; i++) {
       tableauLabel.Add(((Label)this.Controls["Label" + i]).Text);
    }
    Pour récupérer les valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i = 1 ; i <= 5 ; i++) {
       ((Label)this.Controls["Label" + i]).Text = tableauLabel[i - 1];
    }

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Oui, comme le montre kaidan, il faut caster les Controls en Label !
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Mais que veux-tu faire au juste ???
    Si tu mets tes TextBox ou label dans un panel, tu les récupère dans la prop Controls du panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach(Control lab in myPanel.Controls)
    {
      if (lab is Label)
      {
        (lab as Label).Text bla, bla, bla.....
      }
    }
    Il n'y a pas forcément besoin de passer par une nouvelle liste...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    merci pour vos réponses ca marche nickel

    j'ai à peu près tout saisi à part cette histoire de panel ...

    est-ce "MyPanel" = this ??

    qu'est-ce qu'un panel, quelle forme a-t-il ?

    @++

    KaloOopS

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Un panel est un container rectangulaire sur lequel on peut disposer des controles fils (Boutons, textBox, ComboBox, Labels, ... y compris des panel fils).

    Lorsqu'on déplace un panel dans une forme, il se déplace avec tous ses controles "fils", dont la position se détermine par rapport au Top-Left du panel père.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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

Discussions similaires

  1. [DOM] Récup. d'index dans document.form.elements
    Par Heretic dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 30/09/2008, 16h56
  2. Pb pour changer la taille d'un Objet TImage dans une Form
    Par Gouyon dans le forum C++Builder
    Réponses: 10
    Dernier message: 06/06/2006, 18h01
  3. Comment faire pour faire glisser un objet dans une form ?
    Par Olun dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2005, 17h49
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37

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