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 :

[C#]Evénement sur label


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 69
    Par défaut [C#]Evénement sur label
    Je crée des labels à partir d'une boucle for. Ce que j'aimerais c'est d'afficher sur click pour chaque label ce qu'ils contiennent dans TEXT.
    Mais il ne reconnait pas les labels "l". Comment faudrait-il s'y prendre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(int i = 0;i<20;i++)
    {
         Label l = new Label();
         l.Size = new Size(112,16);
         l.Location = new Point(LX,LY);
         l.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
         l.Text = "numéro " + i.ToString();
         l.Click += new System.EventHandler(this.Eleve_Click);
         this.Controls.Add(l);
    }
    L'événement sur click des labels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void Eleve_Click(object sender, System.EventArgs e)
         {
              MessageBox.Show(l.Text);
         }

  2. #2
    doccpu
    Invité(e)
    Par défaut
    Je me demande meme si il les gardes a l'affichage pace que comme tu réafecte la reference "l" a chaque iteration il doit avoir du mal a conserver l'objet en memoire apres un certain temps !
    Un objet qui pert sa dernière référence est voué a se faire detruire !(GarbageCollection)

    ensuite tu declare ton label a l'interieur de la boucle for donc a l'exterieur de cette boucle cette référence n'existe plus !

    puisje te sugerer de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void Eleve_Click(object sender, System.EventArgs e) 
         { 
              if(sender is Label)
    {
    MessageBox.Show(((Label)sender).Text); 
    }
         }

  3. #3
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut Re: [C#]Evénement sur label
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Label l;
    for(int i = 0;i<20;i++)
    {
         l = new Label();
    //...
         l.Click += new System.EventHandler(this.Eleve_Click);
         this.Controls.Add(l);
    }
    L'événement sur click des labels :
    voir code de doccpu

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 69
    Par défaut
    Merci

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

Discussions similaires

  1. [ActionListener] Evénement sur tableau de boutons
    Par frouge dans le forum Composants
    Réponses: 5
    Dernier message: 08/10/2011, 02h44
  2. Evènement sur zone de liste
    Par Mout85 dans le forum IHM
    Réponses: 3
    Dernier message: 20/06/2005, 11h44
  3. [C#] [WinForms] Evènement sur le tri d'une colonne
    Par beway dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/03/2005, 16h43
  4. Non réception d'un evènement sur une JTable
    Par Kant dans le forum Composants
    Réponses: 4
    Dernier message: 28/05/2004, 10h38
  5. Evènement sur clic droit !?
    Par soccersoft dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2002, 21h39

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