2016-04-08 9 views
1

Dies ist ein Code für eine einzelne textbox textChanged-Funktion. Aber ich möchte einen Code für common textChanged schreiben. Ich habe viele Textfelder wie tbl1InterSR, tbl2InterSR ........ tbl10InterSR benannt.Wie schreibe ich benutzerdefinierte "textChanged" -Funktion in C#?

private void tbL1InterSR_TextChanged(object sender, EventArgs e) 
    { 
     if (tbHOI.Text.Length > 0) 
     { 
      if (tbL1InterSR.Text.Length > 0) 
      { 
       tbL1RL.Text = (Convert.ToSingle(tbHOI.Text) - Convert.ToSingle(tbL1InterSR.Text)).ToString(); 
      } 
     } 
    } 

Ich möchte nur eine gemeinsame textChanged-Funktion schreiben.

+0

Also, was ist dein Problem? – Glubus

+3

Mögliches Duplikat von [Ein Ereignis für alle TextBoxen] (http://stackoverflow.com/questions/17926160/one-event-for-all-textboxes) –

+1

Sie können den Körper Ihrer Methode auf eine andere öffentliche statische Methode umgestalten, auf die zugegriffen werden kann irgendwo. Etwas mag 'public static void DoSomething (TextBox tbl1RL, TextBox tbHOI, TextBox tbl1InterSR)', oder Sie können auch die Extension-Methode ausprobieren. –

Antwort

2

Wenn ich Ihre Frage richtig verstehe ... Sie könnten einfach den gleichen Handler für alle Textfelder Ereignisänderung aufrufen.

Auch Sie wissen, wer die Funktion vom Absender Argument aufgerufen hat. Auf diese Weise wissen Sie, mit welchem ​​Textfeld Sie es zu tun haben.

Es ist so einfach wie die gleiche Funktion von zwei verschiedenen Orten aufrufen.

private void TxtBoxChanged(object sender, MouseButtonEventArgs e) 
{ 
    TextBox textBox = (TextBox)sender; // < -- this how u know which txtBox u working with.. 
    // more code..... 
} 
Verwandte Themen