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 :

Interception de l'évenement Click


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 230
    Par défaut Interception de l'évenement Click
    Bonjour,

    Ayant n labels dans un panel. Qu'elle est la meilleure façon d'intercepter l'événement OnClick du panel et des n labels sachant que le traitement est le même.
    En fait, j'ai un traitement à faire lors du clique sur le panel ou tout autre objet appartenant à cet objet.

    La façon la plus simple mais à mon avis la plus lourde serait la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    this.Click += new HandleEvent(monTraitement);
    this.label1.Click += new HandleEvent(monTraitement);
    this.label2.Click += new HandleEvent(monTraitement);
    ...
    this.labeln.Click += new HandleEvent(monTraitement);
    Y a t il une autre solution plus élégante ?

    Merci

  2. #2
    Membre Expert
    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
    Par défaut
    Hum, si tu mets juste un event sur le Panel, ça ne fonctionne pas (peut-être qu'il faut utiliser une GroupBox pour ça ... sans cadre) ?

    Sinon tu peux utiliser la super astuce de mettre un Panel transparent au-dessus de ton Panel et t'abonner à son Click.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    passer en wpf ou les évènements sont routés ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Hum, si tu mets juste un event sur le Panel, ça ne fonctionne pas (peut-être qu'il faut utiliser une GroupBox pour ça ... sans cadre) ?
    Pas plus avec un panel qu'avec un groupbox (dans les deux ce sont des containers et ils se comportent de la même manière : l'event click n'est raised que si le click a lieu sur la surface "libre" du container)

    Sinon tu peux utiliser la super astuce de mettre un Panel transparent au-dessus de ton Panel et t'abonner à son Click.
    Je ne pense pas que cela change quelque chose.

    AMHA, la solution la plus simple est de parcourir les controles de son pannel et de les cabler dynamiquement dans une boucle

    Dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach(Control control in myPanel.Controls)
    {
     control.Click += new EventHandler(myEventHandler);
    }

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 230
    Par défaut
    Merci Bluedeep, c'est ce qui me semblait bon de faire.
    Tu me confirmes que c'est a priori la solution la plus correcte.

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

Discussions similaires

  1. Simuler évenement click
    Par sisiniya dans le forum jQuery
    Réponses: 9
    Dernier message: 08/09/2013, 22h13
  2. [Dojo] Interception de l'évenement Dnd sur une enhancedGrid
    Par Choubaka35 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 26/07/2011, 14h54
  3. Intercepter | Désactiver | remplacer le click gauche sur liens <a>
    Par sora570 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2010, 19h08
  4. Comment créer un évenement click sur label
    Par mdordenart dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 23/10/2009, 14h33
  5. Probleme d'évenement click ToolStripMenuItem
    Par Dahos dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/05/2007, 21h17

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