[英]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.