Déclaration dynamique d'un bouton et utilisation d'événement(s) [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
28 octobre 2009
-
dooba01
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009
-
Bonjour à tous,

je suis actuellement en train de réaliser un petit projet pour mes cours en c# à l'aide de visual studio 2005 et je bloque sur un petit truc, peut être pourriez vous m'aider.

Alors pour commencer, j'ai un formulaire dans lequel j'ajoute des boutons grâce à une boucle pour. J'ai choisi ce moyen car je n'avais pas trop envi d'ajouter les boutons un par un. Jusque là tout va bien.

Mais le souci est que je souhaiterai que pour chaque bouton que j'ai ajouté, lorsqu'on clique dessus, que la couleur change. Après une recherche j'ai trouvé ceci :

- déclaration d'un nouvel événement pour le bouton créé
Button journee = new Button();
journee.Click += new EventHandler(JourneeButton_Click);

- ensuite création de la méthode "JourneeButton_Click"
private void JourneeButton_Click(object sender, EventArgs e)
{
...
}
Le problème est que je ne sais pas quoi mettre à la place des points de suspension. Si je mets : this.BackColor = Color.MaCouleur;
cela me change le fond du formulaire, or je veux changer uniquement la couleur du bouton (ou son texte ou autre chose).

Je ne sais pas si la méthode est bonne, mais toutes les propositions sont les bienvenues.

Merci d'avance pour vos réponses.

5 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Salut,


  private void Button_Click( object sender, EventArgs e )
        {
            Button button = ( Button )sender;
            button.BackColor = Color.Blue;
        }
Messages postés
2
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
28 octobre 2009

Oui !!! Merci pour la réponse rapide.

J'avais trouvé un autre moyen entre temps mais je ne sais pas si la méthode n'est pas un peu lourde. Je créais une nouvelle classe héritée de la classe button et je mettais l'événement dedan.

class Journee : Button
{
public Journee()
{
this.Click += new EventHandler(Journee_Click);
}
private void Journee_Click(object sender, EventArgs e)
{
this.BackColor = Color.Gainsboro;
}
}

Je ne sais pas ce qui est mieux, mais j'adopte ta méthode elle est moins "longue".

Merci encore.
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009

je voulais savoir slp comment vous avez réussit à créer tes boutons avec une boucle for ; merci de vouloir me répondre
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
31
AMICAL BONJOUR A TOI AUSSI

Pour ça, il suffit de mettre une boucle for autour du code qui génère les boutons !

for (int i = 0; i < nb; i++)
{
    Button journee = new Button();
    MonConteneur.Controls.Add(journee); // On le place dans un conteneur
    journee.Size = new Size(100, 30);
    journee.Location = new Point(0, 30 * i); // Je te conseille de mettre une position qui dépend de i, sinon ils seront superposés
    journee.Click += new EventHandler(journee_Click);
    journee.Text = "MonBouton" + (i + 1).ToString();
}


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009

merci pour cette solution :)