The Windows Task Scheduler is generally the proper way to start something at a specified date.
But if you are really searching for an event or equivalent:
var timer = new System.Timers.Timer((DateTime.Today.AddDays(1) – DateTime.Now).
TotalMillisecond);
timer.Elapsed += new ElapsedEventHandler(OnMidnight);
timer.Start();