How to raise event using addHandler

两盒软妹~` 提交于 2019-12-09 11:31:01

问题


I am comfortable with Vb.Net events and handlers. Can anybody will help me with how to create event handlers in c#, and raise events.


回答1:


Developers who know only C#, or only VB.Net, may not know that this is one of the larger differences between VB.NET and C#.

I will shamelesssly copy this nice explanation of VB events: VB uses a declarative syntax for attaching events. The Handles clause appears on the code that will handle the event. When appropriate, multiple methods can handle the same event, and multiple events can be handled by the same method. Use of the Handles clause relies on the WithEvents modifier appearing on the declaration of the underlying variable such as a button. You can also attach property handlers using the AddHandler keyword, and remove them with RemoveHandler. For example

Friend WithEvents TextBox1 As System.Windows.Forms.TextBox   

Private Sub TextBox1_Leave(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles TextBox1.Leave
  'Do Stuff '
End Sub

In C# you can't use the declarative syntax. You use += which is overloaded to act like the VB.Net AddHandler. Here's an example shamelessly stolen from tster's answer:

public MyClass()
{
    InitializeComponent();
    textBox1.Leave += new EventHandler(testBox1_Leave);
}

void testBox1_Leave(object sender, EventArgs e)
{
  //Do Stuff
}



回答2:


In C# 2 and up you add event handlers like this:

yourObject.Event += someMethodGroup;

Where the signature of someMethodGroup matches the delegate signature of yourObject.Event.

In C# 1 you need to explicitly create an event handler like this:

yourObject.Event += new EventHandler(someMethodGroup);

and now the signatures of the method group, event, and EventHandler must match.




回答3:


    public MyClass()
    {
        InitializeComponent();
        textBox1.LostFocus += new EventHandler(testBox1_LostFocus);
    }

    void testBox1_LostFocus(object sender, EventArgs e)
    {
        // do stuff
    }



回答4:


Try these.

Understanding events and event handlers in C#

http://www.c-sharpcorner.com/UploadFile/ddutta/EventHandlingInNetUsingCS11092005052726AM/EventHandlingInNetUsingCS.aspx

http://www.csharphelp.com/archives2/archive408.html



来源:https://stackoverflow.com/questions/1488573/how-to-raise-event-using-addhandler

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!