2012-04-06 4 views
1

Ich habe 5 Tasten, die diese Popup-Funktion zum Senden einer E-Mail aufrufen werden. Wie kann ich herausfinden, welcher Klickknopf die Funktion aufgerufen hat?Mehrere Tasten rufen dieselbe Funktion auf. Kann man herausfinden, welche Taste die Funktion heißt?

public void popup(object sender, EventArgs e) 
    { 

     if (MessageBox.Show("You may not Bind, Change, Or Alter Insurance Coverage through e-mail. Confirmation of this e-mail by us initiates any changes to your Insurance. If you need any immediate service please contact our office at 1-800-875-5720.", "IMPORTANT!", MessageBoxButtons.OKCancel) == DialogResult.OK) 
     { 

      { 
       string email = "mailto:[email protected]"; 
       Process.Start(email); 
      } 
     } 
    } 

Antwort

5

Das sender Objekt auf den Event-Handler werden die Schaltfläche, die

Button b = sender as Button; 
+0

System.Web.UI.WebControls.Button oder System.Windows.Forms.Button – Snake3ite

+0

@ Snake3ite sind Sie auf WPF oder WinForms? – Yahia

+0

System.Web.UI.WebControls.Button wird in Web-Apps verwendet; System.Windows.Forms.Button wird in WinForms-Apps verwendet, System.Windows.Controls.Button wird in WPF-Apps verwendet. – Joe

1

Sender in Ihrem Fall ist Button-Objekt, das angeklickt wurde gedrückt wurde.

Aber wenn Sie müssen wissen, dass vielleicht wäre es besser, zu wenig Code und setzen separate Taste Click-Ereignis Refactoring und diese Funktionalität in einem anderen Verfahren bewegen und sie dann aus verschiedenen Klick-Ereignisse aufrufen und schließlich params

1

senden versuchen

public void popup(object sender, EventArgs e) 
{ 
Button TheButtonClicked = sender as Button; // this gives access to the button 

    if (MessageBox.Show("You may not Bind, Change, Or Alter Insurance Coverage through e-mail. Confirmation of this e-mail by us initiates any changes to your Insurance. If you need any immediate service please contact our office at 1-800-875-5720.", "IMPORTANT!", MessageBoxButtons.OKCancel) == DialogResult.OK) 
    { 

     { 
      string email = "mailto:[email protected]"; 
      Process.Start(email); 
     } 
    } 
} 

Für Referenz siehe this.

+0

+1 für den Link mit mehr Details, und zeigt den gesamten Code, um zu identifizieren, wo Ihre Lösung gehen sollte. – Gaffi

2

Das Senderobjekt ist der Knopf, der die Methode aufruft:

var buttonId = ((Button)sender).ID; 
1

http://msdn.microsoft.com/en-us/library/3exstx90.aspx

die Steuerung
  1. auswählen, zu dem Sie einen Ereignishandler verbinden möchten.

  2. Klicken Sie im Eigenschaftenfenster auf die Schaltfläche Ereignisse().

  3. Klicken Sie auf den Namen des Ereignisses, das Sie behandeln möchten.

  4. Klicken Sie im Wertbereich neben dem Ereignisnamen auf die Dropdown-Schaltfläche, um eine Liste der vorhandenen Ereignishandler anzuzeigen, die mit der Methodensignatur des Ereignisses übereinstimmen, das Sie behandeln möchten.

5 .Wählen Sie den entsprechenden Ereignishandler aus der Liste aus. Code wird dem Formular hinzugefügt, um das Ereignis an den vorhandenen Ereignishandler zu binden.

Verwandte Themen