簡體   English   中英

在 toolStripMenuItem 周圍繪制一個矩形

[英]Drawing a rectangle around a toolStripMenuItem

我知道我可以在任何我想要使用的地方繪制矩形

using (Graphics G = myControl.CreateGraphics())
{
    G.DrawRectangle(new Pen(myColor),myControl.Bounds);
}

但我無法弄清楚如何使用 toolStripMenuItem 執行此操作,以便我可以在它周圍繪制一個矩形。

任何幫助表示贊賞。 謝謝!

最簡單的方法是從控件繼承並覆蓋OnPaint方法,然后將ToolStripMenuItem所有實例更改為MyToolStripMenuItem

class MyToolStripMenuItem : ToolStripMenuItem
{
    protected override void OnPaint( PaintEventargs pe )
    {
        base.OnPaint( pe );

        pe.ClipRectangle.Inflate( -1, -1 );
        pe.Graphics.DrawRectangle( Pens.Black, pe.ClipRectangle );
    }
}

稍微復雜一點,但從長遠來看可維護性更好,是實現自定義ToolStripRenderer ,它允許您更改整個事物的外觀,例如使其看起來像 VS2010。

在此處輸入圖片說明

(圖片取自VBForums

您可以嘗試使用 Paint 事件(您應該很少使用 CreateGraphics)和 ContentRectangle 屬性:

void toolStripButton1_Paint(object sender, PaintEventArgs e) {
  e.Graphics.DrawRectangle(Pens.Red, toolStripButton1.ContentRectangle);
}

雖然ToolStripMenuItem不是控件,但它的父項是。 因此你可以打電話

myToolStripMenuItem.GetCurrentParent().CreateGraphics()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM