tags:

views:

30

answers:

1

Hello everyone, I want to customize ToolStripMenuItem by overriding OnPaint function. This is a MyToolStripMenuItem:

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);
    }
}

In my code, I will fill a blue color in item's bound. Now, I will create a list of items on menustrip:

MyToolStripMenuItem1

|___MyToolStripMenuItem2

|___MyToolStripMenuItem3

I don't know why MyToolStripMenuItem3 don't have a blue background.

This is my source code:

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

Please help me. Thanks.

A: 

It's not the way it is done with a ToolStripMenuItem. You give the MenuStrip a custom renderer. Example code is in this thread.

Hans Passant