Almost all the controls in System.Windows.Forms encapsulate their Windows common controls equivalents. Not all of these controls support all the notification messages that raise events in .NET. The ComboBox, for instance, pops up and hides its scrolling popup window used for the drop down on WM_LBUTTONDOWN and is not double-click aware. If you want to make it so, you're going to have to extend the ComboBox controls in .NET, override WndProc, and handle many of these messages yourself. To handle messages like WM_LBUTTONDOWN though, you might have to use an IMessageFilter. Anyway, you'll have to capture this message before it goes to the base class's WndProc method (which you should call base.WndProc(ref m) after your code) and start a timer. If the timer elapses, call SendMessage (which you'll also have to P/Invoke) with the original data that came with the WM_LBUTTONDOWN message. If the user clicks again before the timer elapses, then you've got your double-click event and should throw-out the WM_LBUTTONDOWN message (i.e., don't send it). The easiest way to raise this event is to just call base.OnDoubleClick, which will raise the DoubleClick event.
Microsoft MVP, Visual C# My Articles