コード例 #1
0
        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);
        }
コード例 #2
0
 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));
             }
         }
     }
 }