2016-04-08 14 views
1

これは、1つのテキストボックスtextChanged関数のコードです。しかし、私は一般的なtextChangedのコードを記述したいと思います。私は、tbL1InterSR、tbL2InterSR ........ tbL10InterSRのような名前のテキストボックスをたくさん持っています。C#でカスタムの "textChanged"関数を書くには?

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

[すべてのテキストボックスの1つのイベント]の可能な複製(http://stackoverflow.com/questions/17926160/one-event-for-all-textboxes) –

+1

メソッド本体をアクセス可能な別のパブリック静的メソッドにリファクタリングすることができますどこでも。何か 'public static void DoSomething(TextBox tbL1RL、TextBox tbHOI、TextBox tbL1InterSR)'が好きで、あなたもExtensionメソッドを試すことができます。 –

答えて

2

あなたの質問が正しく理解されたら... すべてのテキストボックス変更イベントに対して同じハンドラを呼び出すことができます。

また、送信者の引数から誰が関数を呼び出したかがわかります。そうすれば、あなたはあなたが扱っているテキストボックスを知ることができます。

2つの異なる場所から同じ機能を呼び出すのは簡単です。

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