title: How to pass mouse events to a WinForms control at design time?
body: <p>We have a custom-made WinForms grid control which inherits the standard Control class. Users can create columns at design time using our custom verbs and the interactive column collection editor, but they cannot resize the created columns interactively at design time using normal mouse actions (similar to column resizing in the Windows Explorer).</p>
  
  <p>To allow that - i.e. passing all mouse input to the grid header when the mouse pointer is over its area, we overrode the GetHitTest method of the designer attached to our control (inherits ControlDesigner). Structurally it looks like the following one:</p>
  
  <pre><code>protected override bool GetHitTest(System.Drawing.Point point)
  {
    if (IsMouseInGridHeaderArea())
      return true;
    else
      return false;
  }
  </code></pre>
  
  <p>All works almost as expected while we are just moving the mouse pointer: the column headers are correctly highlighted at design time as the user is moving the mouse over them, and the mouse pointer is changed to the double-arrow WE-resize cursor when it is over the column divider area. The only minor problem for the latter case is that the cursor is constantly changed back to the 4-arrow cursor which indicates that the whole control can be selected/moved (the standard behavior for all controls on a form in the WinForms form designer).</p>
  
  <p>When we hold down the left mouse button when column resizing can be performed, nothing happens. Even the whole grid control isn't moved on the form.</p>
  
  <p>How to resolve this issue?</p>