[Mono-list] Exception in WinForms cleanup - ToolStripMenuItem

David Lindström david.lindstrom at percepio.se
Tue Mar 4 11:17:50 UTC 2014

Hi, I'm having problems with exceptions being thrown on garbage collection 
of ToolStripMenuItem. This is with the Mono version included with OpenSUSE 
13.1 so it's slightly behind (3.0.7), but highly likely to be used by 

Due to the error being thrown in the GC stage I can't catch it and I get no 
real info as to what ToolStripMenuItem is being collected. The application 
is a rather large application that is being ported from Windows/.NET to 
Linux/Mono and there's a rather large amount of dynamic menus so it's 
difficult to track down. Has anyone seen this before? Any ideas on what 
would cause this?

Here is a stack trace:

Unhandled Exception:
System.ArgumentException: A null reference or invalid value was found [GDI+ 
status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in 
<filename unknown>:0
  at System.Drawing.Graphics.GdipMeasureString (IntPtr graphics, 
System.String text, System.Drawing.Font font, System.Drawing.RectangleF& 
layoutRect, IntPtr stringFormat) [0x00000] in <filename unknown>:0
  at System.Drawing.Graphics.MeasureString (System.String text, 
System.Drawing.Font font, Int32 width, System.Drawing.StringFormat format) 
[0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) 
  at System.Windows.Forms.TextRenderer.MeasureTextInternal (IDeviceContext 
dc, System.String text, System.Drawing.Font font, Size proposedSize, 
TextFormatFlags flags, Boolean useMeasureString) [0x00000] in <filename 
  at System.Windows.Forms.TextRenderer.MeasureText (System.String text, 
System.Drawing.Font font) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ToolStripMenuItem.CalculatePreferredSize (Size 
constrainingSize) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ToolStripItem.GetPreferredSize (Size 
constrainingSize) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ToolStripDropDownMenu.OnLayout 
(System.Windows.Forms.LayoutEventArgs e) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Control.PerformLayout 
(System.Windows.Forms.Control affectedControl, System.String 
affectedProperty) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Control.PerformLayout () [0x00000] in <filename 
  at (wrapper remoting-invoke-with-check) 
System.Windows.Forms.Control:PerformLayout ()
  at System.Windows.Forms.ToolStripItem.OnParentChanged 
(System.Windows.Forms.ToolStrip oldParent, System.Windows.Forms.ToolStrip 
newParent) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ToolStripItem.set_Parent 
(System.Windows.Forms.ToolStrip value) [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) 
  at System.Windows.Forms.ToolStripItemCollection.Remove 
(System.Windows.Forms.ToolStripItem value) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.ToolStripItem.Dispose (Boolean disposing) 
[0x00000] in <filename unknown>:0
  at System.ComponentModel.Component.Finalize () [0x00000] in <filename 

David Lindström 

More information about the Mono-list mailing list