Tuesday, September 26, 2017

របៀបប្តូរ Color នៅលើ Menu Strip នៅក្នុង MDI Form [C#]

by Unknown  |  in C# Programming at  9:43 AM

របៀបប្តូរ 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;
                }
            }          
        }
}

0 comments:

Proudly Powered by Blogger.