定义新的void事件

时间:2012-12-10 15:06:55

标签: c# events void

有没有办法在不创建新方法的情况下附加事件处理程序?我怀疑它看起来像这样:

 TextBox1.TextChanged += new void(object s, EventArgs arg)
 {
     MessageBox.Show(arg.HashCode.ToString())
 };

5 个答案:

答案 0 :(得分:9)

TextBox1.TextChanged+= (s,arg)=>{MessageBox.Show(arg.HashCode.ToString())};

答案 1 :(得分:1)

您可以在MSDN中使用匿名方法documented

// Create a handler for a click event
button1.Click += delegate(System.Object o, System.EventArgs e)
                   { System.Windows.Forms.MessageBox.Show("Click!"); };

答案 2 :(得分:0)

您可以定义一种方法,在这种情况下我认为该方法更具可读性:

TextBox1.TextChanged += TextBox1_TextChanged;

private void TextBox1_TextChanged(object s, EventArgs arg)
{
    MessageBox.Show(arg.GetHashCode().ToString());
}

答案 3 :(得分:0)

您可以改为声明非匿名方法:

void TextBox1_TextChanged(object s, EventArgs arg)
{
    MessageBox.Show(arg.HashCode.ToString());
}

void HandleEvent()
{
    TextBox1.TextChanged += TextBox1_TextChanged;
}

答案 4 :(得分:0)

这可能很有用:

this.TextBox1.TextChanged += (sender, eventargs) => Console.WriteLine("Do something here !!");