2017-05-14 1 views
0

Dies ist meine Handler-Funktion:binden mehrere Ereignisse ein Handler: eine Funktion mit 2 Objekt params

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

für mehrere textboxes.I haben versucht, zu machen:

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

Im dies zu tun versuchen, beide params als objekte und dann interpretieren sie als label/textbox innerhalb der funktion mit einer variablen, ich habe versucht, sie beide label/textbox entsprechend in der params-erklärung. die einzige funktionsweise war nur mit einem objektparameter, während ich 2 brauche

Antwort

6

Angenommen, Sie versuchen, jedes Textfeld mit einem anderen Label zu verknüpfen, müssen Sie eine Methode schreiben, die ein EventHandler für das entsprechende Label, z.

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

Dann können Sie verwenden:

textBox1.Click += CreateVisibilityHandler(label1); 
textBox2.Click += CreateVisibilityHandler(label2); 
// etc 
Verwandte Themen