title: Exception "Cannot access a disposed object" is coming from non-user code
body: <p>I generally understand exception <code>Cannot access a disposed object</code>. But this time it seems to be originating in non-user code. I'm not posting my code because this time I don't know which one :) Crash occurrs occassionally when a form is closed. It looks like some automatic UI refresh is ongoing:</p>
  
  <pre>
  Message: Cannot access a disposed object.
  Object name: 'Icon'.
  HResult: -2146232798
  HelpLink: (null)
  Source: System.Drawing
  TargetSite: IntPtr get_Handle()
  StackTrace: 
         at System.Drawing.Icon.get_Handle()
         at System.Drawing.Icon.get_Size()
         at System.Drawing.Icon.ToBitmap()
         at System.Windows.Forms.MdiControlStrip.GetTargetWindowIcon()
         at System.Windows.Forms.MdiControlStrip..ctor(IWin32Window target)
         at System.Windows.Forms.Form.UpdateMdiControlStrip(Boolean maximized)
         at System.Windows.Forms.Form.UpdateToolStrip()
         at System.Windows.Forms.Form.OnMdiChildActivate(EventArgs e)
         at System.Windows.Forms.Form.ActivateMdiChildInternal(Form form)
         at System.Windows.Forms.Form.WmMdiActivate(Message& m)
         at System.Windows.Forms.Form.WndProc(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
         at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
         --end of stack trace--
  </pre>
  
  <p>It is possible this one is thrown only debugger session, I haven't seen it in production so far. (See the bottommost item of the stack trace.)</p>
  
  <ul>
  <li><p>Is my assumption (that this is caused only by debugging session) correct? Or should I worry about the same problem in production?</p></li>
  <li><p>Can this problem be somehow avoided?</p></li>
  </ul>