Графика формы не устанавливается при загрузке формы

Моя форма имеет групповой блок, который содержит два перекрывающихся прямоугольника. Другие элементы управления формы - это два набора из четырех числовых элементов управления «вверх-вниз» для установки цветов прямоугольников. (nudF1,2,3 и 4 устанавливают прямоугольник, который находится впереди, а nudB1,2,3 и 4 устанавливают прямоугольник, который находится сзади.) Все работает хорошо, за исключением того, что прямоугольники не отображают цвета, установленные в числовых восходящих и нисходящих Форма сначала загружается. Все события ChangeValue для числовых элементов управления «вверх-вниз» вызывают метод ShowColors (). Событие Load формы вызывает метод csColorsForm_Load (). Какие-либо предложения?

namespace csColors
{
    public partial class csColorsForm : Form
    {
        public csColorsForm()
        {
            InitializeComponent();
        }

        private void csColorsForm_Load(object sender, EventArgs e)
        {
            this.BackColor = System.Drawing.Color.DarkBlue;
            SetColors(sender, e);
        }

        private void SetColors(object sender, EventArgs e)
        {
            Control control = (Control)sender;
            String ctrlName = control.Name;
            Graphics objGraphics;
            Rectangle rect1, rect2;
            int colorBack, colorFore;
            objGraphics = this.grpColor.CreateGraphics();
            // If calling control is not a forecolor control, paint backcolor rectangle
            if (ctrlName.Substring(0,4)!="nudF")
            {
                colorBack = int.Parse(SetColorsB("nudB"), NumberStyles.HexNumber);
                SolidBrush BrushB = new SolidBrush(Color.FromArgb(colorBack));
                rect1 = new Rectangle(this.grpColor.Left, this.grpColor.Top,
                    this.grpColor.Width, this.grpColor.Height);
                objGraphics.FillRectangle(BrushB, rect1);
            }
            // Always paint forecolor rectangle
            colorFore = int.Parse(SetColorsB("nudF"), NumberStyles.HexNumber);
            SolidBrush BrushF = new SolidBrush(Color.FromArgb(colorFore));
            rect2 = new Rectangle(this.grpColor.Left, this.grpColor.Top,
                this.grpColor.Width, this.grpColor.Height);
            objGraphics.FillRectangle(BrushF, rect2);
            objGraphics.Dispose();
        }

        private string SetColorsB(string nam)
        {
            string txt="";
            for (int n = 1; n <= 4; ++n)
            {
                var ud = Controls[nam + n] as NumericUpDown;
                int hex = (int)ud.Value;
                txt += hex.ToString("X2");
            }
            return txt;
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос