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

SpiritOFire 2 Messages postés vendredi 8 mai 2009Date d'inscription 28 octobre 2009 Dernière intervention - 28 oct. 2009 à 18:09 - Dernière réponse : dooba01 2 Messages postés lundi 30 novembre 2009Date d'inscription 2 décembre 2009 Dernière intervention
- 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
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 28 oct. 2009 à 18:37
3
Merci
Salut,


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

Merci Lutinore 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Lutinore
SpiritOFire 2 Messages postés vendredi 8 mai 2009Date d'inscription 28 octobre 2009 Dernière intervention - 28 oct. 2009 à 18:48
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
dooba01 2 Messages postés lundi 30 novembre 2009Date d'inscription 2 décembre 2009 Dernière intervention - 30 nov. 2009 à 16:51
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
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 1 déc. 2009 à 10:05
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
dooba01 2 Messages postés lundi 30 novembre 2009Date d'inscription 2 décembre 2009 Dernière intervention - 2 déc. 2009 à 11:19
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.