Is there a method to obtain the (x, y) coordinates of the mouse cursor in a controls DoubleClick event?
As far as I can tell, the position has to be obtained from the global:
Windows.Forms.Cursor.Position.X, Windows.Forms.Cursor.Position.Y
Also, is there a method to obtain which button produced the double click?
Control.MousePosition and Control.MouseButtons is what you are looking for. Use Control.PointToClient() and Control.PointToScreen() to convert between screen and control relative coordinates.
See MSDN Control.MouseButtons Property, Control.MousePosition Property, Control.PointToClient Method, and Control.PointToScreen Method for details.
UPDATE
Not to see the wood for the trees… 😀 See Moose’s answer and have a look at the event arguments.
This MSDN article lists which mouse actions trigger which events depending on the control.
UPDATE
I missed Moose’s cast so this will not work. You have to use the static Control properties from inside Control.DoubleClick(). Because the button information is encoded as bit field yoou have to test as follows using your desired button.