Exemple #1
0
        public void UpdateControlColorsFonts(Control control, Color backColor, Color foreColor, Font font)
        {
            try
            {
                string type = control.GetType().ToString();
                if (control is TabPage form)
                {
                    control.BackColor = backColor;
                    control.ForeColor = foreColor;
                    control.Font      = font;
                    if (control.Name == "STARTPAGE")
                    {
                        StartPageForm startPage = (StartPageForm)form.Controls.Find("STARTPAGE", true)[0];
                        startPage.UpdateColours(backColor, foreColor);
                    }
                    return;
                }
                else if (type == "System.Windows.Forms.StatusStrip")
                {
                    float emSize = 10.25F;
                    //emSize = Font.SizeInPoints;
                    Font statusBarFont = new Font(font.FontFamily, emSize, GraphicsUnit.Pixel);
                    control.BackColor = backColor;
                    control.ForeColor = foreColor;
                    control.Font      = statusBarFont;
                }
                else if (type == "System.Windows.Forms.MenuStrip")
                {
                    MenuStrip menustrip = (MenuStrip)control;
                    menustrip.BackColor = backColor;
                    menustrip.ForeColor = foreColor;
                    menustrip.Font      = font;
                    foreach (ToolStripMenuItem menuitem in menustrip.Items)
                    {
                        for (int count = 0; count < menuitem.DropDownItems.Count; count++)
                        {
                            type = menuitem.DropDownItems[count].GetType().ToString();
                            if (type != "System.Windows.Forms.ToolStripSeparator")
                            {
                                UpdateControlColorsFonts_MenuItems((ToolStripMenuItem)menuitem.DropDownItems[count], backColor, foreColor, font);
                            }
                            else
                            {
                                menuitem.DropDownItems[count].BackColor = DefaultBackColor;
                                menuitem.DropDownItems[count].ForeColor = backColor;
                            }
                        }
                    }
                }
                else
                {
                    control.BackColor = backColor;
                    control.ForeColor = foreColor;
                    control.Font      = font;
                }

                foreach (Control subControl in control.Controls)
                {
                    subControl.BackColor = backColor;
                    subControl.ForeColor = foreColor;
                    subControl.Font      = font;
                    UpdateControlColorsFonts(subControl, backColor, foreColor, font);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }