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#] Une seule méthode pour plusieurs composants


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut [C#] Une seule méthode pour plusieurs composants
    Bonjour,
    je n'arrive pas à trouver une solution à mon problème...

    j'ai 6 labels,
    1 ColorDialog,
    et je veux une méthode qui est appelé à chaque fois que l'on clique sur un des labels (facile).
    Dans cette méthode, j'ouvre le colorDialog et si l'utilisateur valide (btOK) je met la propriété backcolor du label sur lequel on a cliqué à colorDialog1.Color

    comment faire pour récuperer le label qui a été cliqué? L'objet sender de la méthode peut être utilisé?
    Mais...Mais... C'est quoi ce bordel !!!
    j'etais a la recherche d'ecole en info. Mais je n'ai rien trouvé de tres concluant alors je sais po quoi faire... J'ai un DUT info et bcp d'ambitions...Vous auriez po un ptit boulot

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    code stp
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  3. #3
    Membre régulier Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Points : 97
    Points
    97
    Par défaut
    sender correspond à l'objet qui appele la méthode, donc je pense que oui

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Oui mais comment faire pour transtiper sender parceque (Label)sender ca marche pas...

    lol y'a pas vraiment de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void label3_Click(object sender, System.EventArgs e)
    		{
    			if(colorDialog1.ShowDialog() == DialogResult.OK)
    			{
    				//sender.BackColor = colorDialog1.Color;				
    			}
    		}
    cette méthode est appelée a chaque fois que l'on clique sur un label (n'importe lequel des six).
    et ce que je veux changer c'est la couleur du label sur lequel on a cliqué
    Mais...Mais... C'est quoi ce bordel !!!
    j'etais a la recherche d'ecole en info. Mais je n'ai rien trouvé de tres concluant alors je sais po quoi faire... J'ai un DUT info et bcp d'ambitions...Vous auriez po un ptit boulot

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Ca serait plus facilement réglé avec un contrôle héritant de label non ?

    C'est étrange que (Label)sender ne fonctionne pas...mais il faudrait voir le reste pour comprendre ce qui se passe.
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    je vais me penché sur un contrôle héritant de label
    il faut que je crée une nouvelle classe?
    Mais...Mais... C'est quoi ce bordel !!!
    j'etais a la recherche d'ecole en info. Mais je n'ai rien trouvé de tres concluant alors je sais po quoi faire... J'ai un DUT info et bcp d'ambitions...Vous auriez po un ptit boulot

  7. #7
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    oui, tu crées une nouvelle classe, tu la fais hériter de Label, et tu redéfinis le Click
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  8. #8
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Comme l'a dit très justement chman,

    Tu peux utiliser le sender, qui n'est autre que le label qui a été cliqué...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void label_Click(object sender, System.EventArgs e) 
    { 
       if (sender is Label)
       {
         Label myLabel=(Label)sender;  
         if(colorDialog1.ShowDialog() == DialogResult.OK) 
        { 
           myLabel.BackColor = colorDialog1.Color;             
        } 
      }
    }
    Et associer cette méthode à tout tes labels...

  9. #9
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par ubu
    Et associer cette méthode à tout tes labels...
    Ce qui devient fort peu pratique si on travaille avec 240 labels...
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 15/05/2010, 20h10
  2. Une seule CSS pour plusieurs portlets
    Par sheepolata dans le forum Portails
    Réponses: 3
    Dernier message: 02/03/2010, 16h51
  3. [Joomla!] Une seule bdd pour plusieurs sites
    Par Imp rusg dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 23/02/2009, 09h16
  4. Réponses: 2
    Dernier message: 10/07/2007, 13h45
  5. Réponses: 7
    Dernier message: 01/02/2006, 15h49

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