2010-04-12 53 views
1

我想通過重寫OnPaint函數來自定義ToolStripMenuItem。這是一個MyToolStripMenuItem:自定義ToolStripMenuItem

public class MyToolStripMenuItem : ToolStripMenuItem 
{ 
    public MyToolStripMenuItem() 
     :base() 
    { 
    } 

    public MyToolStripMenuItem(string t) 
     :base(t) 
    { 
    } 

    protected override void OnPaint(PaintEventArgs e) 
    { 
     Graphics g = e.Graphics; 
     Rectangle r = this.Bounds; 
     g.FillRectangle(Brushes.Blue, r); 
     g.DrawString(this.Text, this.Font, Brushes.Red, r); 
    } 
} 

在我的代碼,我將填補項目的綁定藍色。現在,我將MenuStrip中創建的項目清單:

MyToolStripMenuItem1

| ___ MyToolStripMenuItem2

| ___ MyToolStripMenuItem3

我不知道爲什麼MyToolStripMenuItem3沒有一個藍色的背景。

這是我的源代碼:

http://www.mediafire.com/?2qhmjzzfzzn

請幫助我。謝謝。

回答

1

這不是用ToolStripMenuItem完成的。你給MenuStrip一個自定義的渲染器。示例代碼位於this thread