public virtual void MouseDown(MouseEventArgs e, Point rawPt)
{
Debug.Assert(e != null);
// Validate incoming reference
if (e == null) throw new ArgumentNullException("e");
Point pt = new Point(e.X, e.Y);
// Set the correct active view from the point
UpdateViewFromPoint(_control, pt);
// Tell current view of mouse down
if (ActiveView != null)
MouseCaptured = ActiveView.MouseDown(rawPt, e.Button);
// Generate event to indicate the view manager has processed a mouse down
PerformMouseDownProcessed(e);
}