private void b_InvertClick(object sender, EventArgs e)
        {
            RibbonProfesionalRendererColorTable r = ribbon1.Theme.RendererColorTable;
            RibbonColorPart rcp           = (RibbonColorPart)((CheckBox)sender).Tag;
            Color           originalColor = r.GetColor(rcp);

            RefreshColor(rcp, Color.FromArgb(originalColor.A, 255 - originalColor.R, 255 - originalColor.G, 255 - originalColor.B));
        }
        private void nud_ValueChanged(object sender, EventArgs e)
        {
            RibbonProfesionalRendererColorTable r = ribbon1.Theme.RendererColorTable;
            RibbonColorPart rcp           = (RibbonColorPart)((NumericUpDown)sender).Tag;
            Color           originalColor = r.GetColor(rcp);

            RefreshColor(rcp, Color.FromArgb((int)((NumericUpDown)sender).Value, originalColor));
        }
 private void t_LostFocus(object sender, EventArgs e)
 {
     try
     {
         if (((TextBox)sender).Text.Length == 7)
         {
             RibbonProfesionalRendererColorTable r = ribbon1.Theme.RendererColorTable;
             Color           color = ribbon1.Theme.RendererColorTable.FromHex(((TextBox)sender).Text);
             RibbonColorPart rcp   = (RibbonColorPart)((TextBox)sender).Tag;
             RefreshColor(rcp, Color.FromArgb(r.GetColor(rcp).A, color));
         }
         else if (((TextBox)sender).Text.Length > 7)
         {
             MessageBox.Show("Value is to long.");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void LoadTheme()
        {
            RibbonProfesionalRendererColorTable r = ribbon1.Theme.RendererColorTable;

            txtAuthor.Text        = r.ThemeAuthor;
            txtAuthorEmail.Text   = r.ThemeAuthorEmail;
            txtAuthorWebsite.Text = r.ThemeAuthorWebsite;
            txtDateCreated.Text   = r.ThemeDateCreated;
            txtThemeName.Text     = r.ThemeName;
            flowLayoutPanel1.Controls.Remove(tableLayoutPanel1);
            tableLayoutPanel1 = null;

            foreach (KeyValuePair <RibbonColorPart, Panel> kv in dicPanel)
            {
                Panel p = kv.Value;
                p = null;
            }

            foreach (KeyValuePair <RibbonColorPart, TextBox> kv in dicTxt)
            {
                TextBox t = kv.Value;
                t = null;
            }

            dicPanel.Clear();
            dicTxt.Clear();

            tableLayoutPanel1 = new TableLayoutPanel();
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle());
            tableLayoutPanel1.Controls.Add(c1);
            tableLayoutPanel1.Controls.Add(c2);
            tableLayoutPanel1.Controls.Add(c3);
            tableLayoutPanel1.Controls.Add(c4);
            tableLayoutPanel1.Controls.Add(c5);
            tableLayoutPanel1.Controls.Add(c6);

            int count = Enum.GetNames(typeof(RibbonColorPart)).Length;

            for (int i = 0; i < count; i++)
            {
                Label l = new Label();
                l.Width = 180;
                l.Text  = ((RibbonColorPart)i).ToString();

                Panel p = new Panel();
                p.Height      = 16;
                p.Width       = 100;
                p.BorderStyle = BorderStyle.FixedSingle;
                p.BackColor   = r.GetColor((RibbonColorPart)i);
                dicPanel[(RibbonColorPart)i] = p;

                TextBox t = new TextBox();
                t.Tag          = (RibbonColorPart)i;
                t.Text         = r.GetColorHexStr((RibbonColorPart)i);
                t.LostFocus   += new EventHandler(t_LostFocus);
                t.KeyPress    += new KeyPressEventHandler(t_KeyPress);
                t.TextChanged += new EventHandler(t_LostFocus);
                dicTxt[(RibbonColorPart)i] = t;

                Button b = new Button();
                b.Text   = "Get Color";
                b.Tag    = (RibbonColorPart)i;
                b.Click += new EventHandler(b_Click);

                CheckBox ib = new CheckBox();
                ib.Text   = "Invert";
                ib.Tag    = (RibbonColorPart)i;
                ib.Click += new EventHandler(b_InvertClick);

                NumericUpDown nud = new NumericUpDown();
                nud.Width         = 50;
                nud.Tag           = (RibbonColorPart)i;
                nud.Minimum       = 0;
                nud.Maximum       = 255;
                nud.Value         = r.GetColor((RibbonColorPart)i).A;
                nud.ValueChanged += new EventHandler(nud_ValueChanged);

                tableLayoutPanel1.Controls.Add(l);
                tableLayoutPanel1.Controls.Add(nud);
                tableLayoutPanel1.Controls.Add(p);
                tableLayoutPanel1.Controls.Add(t);
                tableLayoutPanel1.Controls.Add(b);
                tableLayoutPanel1.Controls.Add(ib);
            }
            tableLayoutPanel1.Dock       = DockStyle.Fill;
            tableLayoutPanel1.AutoScroll = true;
            tableLayoutPanel1.AutoSize   = true;
            flowLayoutPanel1.Controls.Add(tableLayoutPanel1);
            ribbon1.Refresh();
            this.Refresh();
        }