2013-08-02 7 views
1

У меня есть форма, содержащая около 25 кнопок. Я хочу установить одно и то же свойство для нескольких кнопок на основе ввода пользователем. Свойства я хочу изменить это,Установить свойства через время выполнения для нескольких элементов управления

  • Кнопка текст
  • Кнопка Fore Color
  • Кнопка Назад Цвет
  • Кнопка Размер

Я был в состоянии сделать это, используя код, но Код длинный. Я хочу знать, есть ли способ петли, чтобы изменить все из них.

Это то, что я использовал

button1.Text = btntext; 
    button1.ForeColor = btnforecolor; 
    button1.BackColor = btnbackcolor; 
    button1.Size = new Size(btnwidth, btnheight); 

Я должен был сделать это, как это для кнопки 25, я хочу знать, есть ли лучший способ сделать это с меньшим количеством кода ?? ..

Любое предложение будет оценено по достоинству.

ответ

2

два варианта здесь:

1) Создать список кнопок и петли:

for (int i = 0; i < 25; i++){ 
    Button btn = new Button(); 
    btn.Text = ... 
    btn.Location = new Point(10 + (i%5)*100, (i/5)*30); 
    btn.Click += new EventHandler(btn_Click);    // TODO: Implement btn_Click event 
    this.Controls.Add(btn); 
} 

2) Loop через существующие элементы управления:

foreach (Control c in this.Controls) { 
    Button btn = c as Button; 
    if (btn == null) continue; 
    btn.Text = ... 
} 
+0

Спасибо. Ваш второй вариант работал отлично, первый тоже работал, но у меня были проблемы с устройством. –

+1

@ElizabethAmesin: для устройства у вас есть только счетчик 'i', поэтому вам нужно рассчитать расположение кнопок. Пожалуйста, посмотрите мое редактирование для примера. – joe

0

Если вы не можете итерацию через все кнопки на форме, но вам нужен конкретный список кнопок, которые я использую для этого кода.

List<Button> ListOfButtons = new List<Button> 
    { 
      this.Button1, 
      this.Button2, 
    } 


foreach (Button myButton in ListOfButtons) 
    { 
      //Do your assigments to myButton 

    } 
Смежные вопросы