将多个事件绑定到一个处理程序:具有2个对象参数的函数

Nik*_*ari 0 c# handler winforms

这是我的处理函数:

   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;
        }
Run Code Online (Sandbox Code Playgroud)

我试着这样做:

this.textBox1.Click += new System.EventHandler(textChange);
Run Code Online (Sandbox Code Playgroud)

对于多个文本框.我已经尝试将两个参数作为对象,然后使用变量将它们解释为函数内部的标签/文本框,我试图在参数声明中相应地使它们都标记/文本框.它的唯一工作方式是通过我只需要一个对象参数2.

Jon*_*eet 6

假设您尝试将每个文本框与不同的标签相关联,则需要编写一个构造EventHandler相关标签的方法,例如

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

然后你可以使用:

textBox1.Click += CreateVisibilityHandler(label1);
textBox2.Click += CreateVisibilityHandler(label2);
// etc
Run Code Online (Sandbox Code Playgroud)