1

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

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

5 回答 5

9
TextBox1.TextChanged+= (s,arg)=>{MessageBox.Show(arg.HashCode.ToString())};
于 2012-12-10T15:09:01.820 回答
1

您可以使用匿名方法,如MSDN 中所述

// Create a handler for a click event
button1.Click += delegate(System.Object o, System.EventArgs e)
                   { System.Windows.Forms.MessageBox.Show("Click!"); };
于 2012-12-10T15:10:36.377 回答
0

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

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

void HandleEvent()
{
    TextBox1.TextChanged += TextBox1_TextChanged;
}
于 2012-12-10T15:11:27.083 回答
0

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

TextBox1.TextChanged += TextBox1_TextChanged;

private void TextBox1_TextChanged(object s, EventArgs arg)
{
    MessageBox.Show(arg.GetHashCode().ToString());
}
于 2012-12-10T15:10:30.307 回答
0

这可能有用:

this.TextBox1.TextChanged += (sender, eventargs) => Console.WriteLine("Do something here !!");
于 2012-12-10T15:15:16.163 回答