protected internal override void SetBounds(Rectangle rect) { ToolStripMenuItemInternalLayout internalLayout = base.InternalLayout as ToolStripMenuItemInternalLayout; if ((internalLayout != null) && internalLayout.UseMenuLayout) { ToolStripDropDownMenu owner = base.Owner as ToolStripDropDownMenu; if (owner != null) { rect.X -= owner.Padding.Left; rect.X = Math.Max(rect.X, 0); } } base.SetBounds(rect); }
protected override void OnPaint(PaintEventArgs e) { if (base.Owner != null) { ToolStripRenderer renderer = base.Renderer; Graphics g = e.Graphics; renderer.DrawMenuItemBackground(new ToolStripItemRenderEventArgs(g, this)); Color menuText = SystemColors.MenuText; if (base.IsForeColorSet) { menuText = this.ForeColor; } else if (!this.IsTopLevel || ToolStripManager.VisualStylesEnabled) { if (this.Selected || this.Pressed) { menuText = SystemColors.HighlightText; } else { menuText = SystemColors.MenuText; } } bool flag = this.RightToLeft == RightToLeft.Yes; ToolStripMenuItemInternalLayout internalLayout = base.InternalLayout as ToolStripMenuItemInternalLayout; if ((internalLayout != null) && internalLayout.UseMenuLayout) { if ((this.CheckState != System.Windows.Forms.CheckState.Unchecked) && internalLayout.PaintCheck) { Rectangle checkRectangle = internalLayout.CheckRectangle; if (!internalLayout.ShowCheckMargin) { checkRectangle = internalLayout.ImageRectangle; } if (checkRectangle.Width != 0) { renderer.DrawItemCheck(new ToolStripItemImageRenderEventArgs(g, this, this.CheckedImage, checkRectangle)); } } if ((this.DisplayStyle & ToolStripItemDisplayStyle.Text) == ToolStripItemDisplayStyle.Text) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.Text, base.InternalLayout.TextRectangle, menuText, this.Font, flag ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft)); bool showShortcutKeys = this.ShowShortcutKeys; if (!base.DesignMode) { showShortcutKeys = showShortcutKeys && !this.HasDropDownItems; } if (showShortcutKeys) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.GetShortcutText(), base.InternalLayout.TextRectangle, menuText, this.Font, flag ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight)); } } if (this.HasDropDownItems) { ArrowDirection arrowDirection = flag ? ArrowDirection.Left : ArrowDirection.Right; Color arrowColor = (this.Selected || this.Pressed) ? SystemColors.HighlightText : SystemColors.MenuText; arrowColor = this.Enabled ? arrowColor : SystemColors.ControlDark; renderer.DrawArrow(new ToolStripArrowRenderEventArgs(g, this, internalLayout.ArrowRectangle, arrowColor, arrowDirection)); } if ((internalLayout.PaintImage && ((this.DisplayStyle & ToolStripItemDisplayStyle.Image) == ToolStripItemDisplayStyle.Image)) && (this.Image != null)) { renderer.DrawItemImage(new ToolStripItemImageRenderEventArgs(g, this, base.InternalLayout.ImageRectangle)); } } else { if ((this.DisplayStyle & ToolStripItemDisplayStyle.Text) == ToolStripItemDisplayStyle.Text) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.Text, base.InternalLayout.TextRectangle, menuText, this.Font, base.InternalLayout.TextFormat)); } if (((this.DisplayStyle & ToolStripItemDisplayStyle.Image) == ToolStripItemDisplayStyle.Image) && (this.Image != null)) { renderer.DrawItemImage(new ToolStripItemImageRenderEventArgs(g, this, base.InternalLayout.ImageRectangle)); } } } }