2016-04-08 33 views
1

Bu, tek bir metin kutusu textChanged işlevi için bir koddur. Ama ortak textChanged için bir kod yazmak istiyorum. TbL1InterSR, tbL2InterSR ........ tbL10InterSR gibi birçok metin kutusu var.C# dilinde özel "textChanged" işlevi nasıl yazılır?

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(); 
      } 
     } 
    } 

Sadece ortak bir textChanged işlevi yazmak istiyorum.

+0

Sorununuz nedir? – Glubus

+3

[Tüm Metin Kutuları İçin Bir Olay] Olası kopyası (http://stackoverflow.com/questions/17926160/one-event-for-all-textboxes) –

+1

Yönteminizin gövdesini erişilebilen başka bir genel statik yönteme göre yeniden düzenleyebilirsiniz. herhangi bir yer. Bir şey 'public static void DoSomething (TextBox tbL1RL, TextBox tbHOI, TextBox tbL1InterSR)' veya uzantısı yöntemi de deneyebilirsiniz. –

cevap

2

Sorunuzu doğru bir şekilde anlıyorsam ... Tüm metin kutuları değiştirilen etkinlik için aynı işleyiciyi çağırabilirsiniz.

Ayrıca, işlevi gönderen argümanından kimin aradığını biliyorsunuz. Bu şekilde, hangi metin kutusunu ele aldığınızı biliyorsunuz.

İki farklı yerden aynı işlevi çağırmak kadar basit.

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