របៀបប្តូរ Color នៅលើ Menu Strip នៅក្នុង MDI Form [C#]
របៀបប្តូរ Background Color នៅលើ Menu, Sub Menu និង Border Color នៅលើ DropDownMenu
1/ Create Two Class
Class 1: MyColors
private class MyColors : ProfessionalColorTable
{
//*** Select Color on Mouse Over on each Main Menu ***
public override Color MenuItemSelectedGradientBegin
{
get { return Color.Orange; }
}
public override Color MenuItemSelectedGradientEnd
{
get { return Color.Yellow; }
}
//*** Set backgroud color on each selected Sub Menu Item ***
public override Color MenuItemSelected
{
get { return Color.Gold; }
//get { return Color.Transparent; }
}
//*** Set Border Color on Sub Menu Item ***
public override Color MenuItemBorder
{
get { return Color.Green; }
}
//*** Set backgroud Color On Sub Menu Item to LightSeaGreen ***
public override Color ToolStripDropDownBackground
{
get { return Color.LightSeaGreen; }
}
//*** Set lock backgroud color to Orange Yeallow when selected Main Menu ***
public override Color MenuItemPressedGradientBegin
{
get {return Color.Orange;}
}
public override Color MenuItemPressedGradientEnd
{
get { return Color.Yellow; }
}
//==== Set backgroud Color on Sub Menu Item Image Backgroud ====
public override Color ImageMarginGradientBegin
{
//get { return Color.DeepSkyBlue; }
get { return Color.Gold; }
}
public override Color ImageMarginGradientMiddle
{
//get { return Color.Gold; }
get { return Color.DarkCyan; }
}
public override Color ImageMarginGradientEnd
{
//get { return Color.DarkCyan; }
//get { return Color.Gold; }
get { return Color.DeepSkyBlue; }
}
}
Class 2: MyRenderer
private class MyRenderer : ToolStripProfessionalRenderer
{
public MyRenderer() : base(new MyColors()) { }
//protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
//{
// // Here set e.TextFont, e.TextColor and so on, For example:
// if (e.Item.Selected && e.Item.OwnerItem != null)
// {
// //e.TextColor = Color.Green;
// e.TextFont = new Font(e.Item.Font, FontStyle.Regular);
// //e.TextFont = new System.Drawing.Font("Segoe UI", 11);
// }
// base.OnRenderItemText(e);
//}
}
2/ Call Class that we create to InitializeComponent();
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
menuSO.Renderer = new MyRenderer();
menuSO.BackColor = Color.LightSeaGreen;
statusStrip.BackColor = Color.LightSeaGreen;
foreach (Control ctrl in this.Controls)
{
if (ctrl is MdiClient)
{
ctrl.BackColor = Color.DimGray;
}
}
}
}