Created simple class derived from MenuItem
public class SauronMenuItem : System.Windows.Forms.MenuItem, IMenuItem
{
	....
	public SauronMenuItem(string Name, string Text, Image image, EventHandler onClick, Shortcut shortcut) 
		: base(Text, onClick, shortcut)
	{
		OwnerDraw = false;
		_Name = Name;
		_Image = image;
	}
	protected override void OnMeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
	{
		base.OnMeasureItem(e);
		//temporrally fixedvalues
		e.ItemHeight = 32;
		e.ItemWidth = 75; 
	}
	protected override void OnDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
	{		
		base.OnDrawItem(e);
		DrawText(e);
	}
	private void DrawText(System.Windows.Forms.DrawItemEventArgs e)
	{
		RectangleF TextRectF = new RectangleF(e.Bounds.X + 32, e.Bounds.Top, e.Bounds.Width - 48, e.Bounds.Height);
		...
		e.Graphics.DrawString(Text, MenuFont, TextBrush, TextRectF, sf);		
	}
}
When I try show ContextMenu then I get error "Out Of Memory". It happen after then method MenuItem.OnMeasureItem of last MenuItem called in ContextMenu.
Same error happen if I add handlers to MeasureItem and DrawItem without override apropriate methods.
Where is a bug? I hat i forgot did?