2009-05-20 10 views
1

Voici la majeure partie de ce que je veux faire.Quel objet a été cliqué lorsqu'un événement a été déclenché?

J'ai créé deux boutons dans mon formulaire Initializer Comme le montre ci-dessous

public Form1() 
    { 
     InitializeComponent(); 

     Button b1 = new Button(); 
     b1.Parent = this; 
     b1.Name = "btnA"; 
     b1.Text = "Button A"; 
     b1.Click += new EventHandler(button_Click); 
     b1.Show(); 

     Button b2 = new Button(); 
     b2.Parent = this; 
     b2.Name = "btnB"; 
     b2.Text = "Button B"; 
     b2.Click += new EventHandler(button_Click); 
     b2.Show(); 
    } 

    private void button_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Button A or Button B was Clicked?"); 
    } 

Je dois savoir quel bouton a été cliqué et manipuler de toute évidence ce bouton qui a été cliqué.

Même quelque chose comme changer le texte du bouton qui a été cliqué. Je suis sûr que nous pouvons utiliser l'expéditeur de l'objet pour accéder au bouton à partir duquel l'événement a été déclenché, mais je ne sais pas comment utiliser l'expéditeur pour manipuler le bon bouton.

Toute Direction ou de l'aide sera aprécié grâce

Répondre

4

Il suffit de jeter sender-Button:

private void button_Click(object sender, EventArgs e) 
{ 
    Button clicked = (Button) sender; 
    MessageBox.Show("Button " + clicked.Name + " was Clicked."); 
} 
+0

Merci .. Et dam que c'était rapide: D –

1

Le paramètre sender est l'objet qui a déclenché l'événement:

Button button = sender as Button; 
if(button != null) 
{ 
    MessageBox.Show("Button " + button.Name + " was clicked"); 
} 
else 
{ 
    MessageBox.Show("Not a button?"); 
} 
+0

Merci. Résout un cauchemar d'un problème –

0

L'objet émetteur vous donnera l'objet qui a envoyé le message. Vous pouvez le lancer sur un bouton.

var clickedButton = (Button) sender; 
Questions connexes