简体   繁体   中英

what is the equivalent of visual basic withevents and handles in C#

I try to convert a Visual Basic (VB) project to C# and I have no idea how to change some of codes below,

In a windows form a field and a Timer object defined like this;

Public WithEvents tim As New Timer
...
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim.Tick
End Sub
...

How to rewrite this lines in C#?

In C# you enrol an EventHandler by registering a method delegate with the event using the += operator as follows:

public Timer tim = new Timer();
tim.Tick += Timer1_Tick;

private void Timer1_Tick(object sender, EventArgs e)
{
   // Event handling code here
} 

This works because the Tick event of the Timer class implements an Event as follows:

public event EventHandler Tick

and EventHandler is a method delegate with signature:

public delegate void EventHandler(
    Object sender,
    EventArgs e
)

which is why any method that conforms to the EventHandler signature can be used as a handler.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM