2017-05-14 8 views
0

のparams 2オブジェクトとの機能は、これは私のハンドラ関数である:このやろうとし1つのハンドラに複数のイベントを結ぶ:

protected static void textChange(object sender,Label labe1, EventArgs e) 
     { 
      var text = sender as TextBox; 
      if (text.Text != "") 
       labe1.Visible = false; 
      else 
       labe1.Visible = true; 
     } 

イム:複数textboxes.Iため

this.textBox1.Click += new System.EventHandler(textChange); 

が作っ試してみました両方のparamsをオブジェクトとして使用し、変数を使って関数内のlabel/textboxとして解釈すると、parive宣言でラベル/テキストボックスに対応するラベルが作成されました。唯一の方法は、オブジェクトパラメータを1つだけ持つことでした。 。

答えて

6

各テキストボックスを別のラベルに関連付けると仮定すると、関連するラベルにEventHandlerを作成するメソッドを記述する必要があります。

public EventHandler CreateVisibilityHandler(Label label) 
{ 
    return (sender, args) => label.Visible = ((TextBox) sender).Text == ""; 
} 

次に、あなたが使用することができます。

textBox1.Click += CreateVisibilityHandler(label1); 
textBox2.Click += CreateVisibilityHandler(label2); 
// etc 
関連する問題