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

Messages postés
2
Date d'inscription
vendredi 8 mai 2009
Dernière intervention
28 octobre 2009
- - Dernière réponse : dooba01
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Dernière intervention
2 décembre 2009
- 2 déc. 2009 à 11:19
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
3
Merci
Salut,


  private void Button_Click( object sender, EventArgs e )
        {
            Button button = ( Button )sender;
            button.BackColor = Color.Blue;
        }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Lutinore
Messages postés
2
Date d'inscription
vendredi 8 mai 2009
Dernière intervention
28 octobre 2009
0
Merci
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.
Commenter la réponse de SpiritOFire
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Dernière intervention
2 décembre 2009
0
Merci
je voulais savoir slp comment vous avez réussit à créer tes boutons avec une boucle for ; merci de vouloir me répondre
Commenter la réponse de dooba01
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
0
Merci
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é ! -
Commenter la réponse de krimog
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Dernière intervention
2 décembre 2009
0
Merci
merci pour cette solution :)
Commenter la réponse de dooba01

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.