OK, someone please tell me why this is not working.
I have a simple MenuStrip in winforms app (c#). It has ToolStripMenuItems.
In the properties window of the designer, I select BackColor = White. In Desginer.cs file I can see it.
Running the app, the background color is Control (grey).
What is going? Why is the backcolor not white?
Thanks
EDIT
This is the code from the Designer.cs:
this.menuRefresh.BackColor = System.Drawing.Color.White;
EDIT2:
In the code, after loading the form (in the constructor and also in Form_Load event I've placed this:
menuRefresh.BackColor = Color.White;
Also not helping.
You need to implement a simple renderer class to achieve this. Here is an example:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
menuStrip1.Renderer = new MyRenderer();
}
private class MyRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
Rectangle rc = new Rectangle(Point.Empty, e.Item.Size);
Color c = e.Item.Selected ? Color.Azure : Color.Beige;
using (SolidBrush brush = new SolidBrush(c))
e.Graphics.FillRectangle(brush, rc);
}
}
}