2016-04-08 5 views
1

Это код для одной текстовой функции textChanged. Но я хочу написать код для обычного textChanged. У меня много текстовых полей, называемых tbL1InterSR, tbL2InterSR ........ tbL10InterSR.Как написать пользовательскую функцию "textChanged" в 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(); 
      } 
     } 
    } 

Я просто хочу написать общую функцию textChanged.

+0

В чем проблема? – Glubus

+3

Возможный дубликат [одного события для всех TextBoxes] (http://stackoverflow.com/questions/17926160/one-event-for-all-textboxes) –

+1

Вы можете реорганизовать тело вашего метода к другому общественному статический метод, который можно получить в любом месте. Что-то любит 'public static void DoSomething (TextBox tbL1RL, TextBox tbHOI, TextBox tbL1InterSR)', или вы также можете попробовать метод расширения. –

ответ

2

Если я правильно понимаю ваш вопрос ... Вы можете просто вызвать тот же обработчик для всех текстовых измененного события.

Кроме того, вы знаете, кто называют функцию от аргумента отправителя. Таким образом, вы знаете, с каким текстовым полем вы имеете дело.

Его простота, как вызов той же функции из двух разных мест.

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