#c_sharp #winforms
Задача при нажатии на кнопку создать еще одну кнопку с определенным цветом кнопки. Добавляем на форму кнопку при нажатии на которую мы создаем кнопку с заданным цветом. private static int X = 100; private static int Y = 100; private void buttonDynamic_Click(object sender, EventArgs e) { AddButton(X, Y); X += 100; } private void AddButton(int x, int y) { // создаем контрол System.Windows.Forms.Button buttonDyn = new System.Windows.Forms.Button(); // устанавливаем необходимые свойства buttonDyn.Location = new System.Drawing.Point(x, y); buttonDyn.Name = "button1"; buttonDyn.Size = new System.Drawing.Size(75, 23); buttonDyn.TabIndex = 0; //вот здесь меняем цвет кнопки buttonDyn.BackColor = Color.Chartreuse; buttonDyn.UseVisualStyleBackColor = true; // button1_Click - функция обработчик события нажатия на кнопку buttonDyn.Click += new System.EventHandler(button1_Click); Controls.Add(buttonDyn); // добавляем на форму } При нажатии на кнопку buttonDynamic появляется новая кнопка, но цвет ее стандартный серый. Что я делаю не так?
Ответы
Ответ 1
Свойство BackColor относится к так называемым AmbientProperties. Смотрите Remarks. Его значение задаётся таким же, как у родительского контрола (это сделано для облегчения конструирования: добавляем контрол - его параметры определяются автоматически). Пока контрол не добавлен на родительский, нет смысла менять такое свойство. Его нужно менять после добавления. Controls.Add(buttonDyn); buttonDyn.BackColor = Color.Chartreuse;
Комментариев нет:
Отправить комментарий