You may have added this somewhere and just removed it in your sample... but have you called
Application.Run();
in Main()? As I understand it, you're attempting to hook window events without a message loop going. Application.Run will get it running.