2015-03-17 2 views
0

Итак, у меня есть 100 кнопок, и мне нужно изменить там цвета на основе условий в цикле while. Они называются button1, button2, button3 и т. Д. в первый раз вокруг цикла (итерация?) мне нужно отредактировать кнопку 1, кнопку следующего раза2 третью кнопку времени3 и т. д.Изменение свойства объекта с использованием переменных? C#/Visual Studio

Я думал, что могу просто сделать строку, которая равна «кнопке», добавить число время вокруг цикла и изменить цвет.

String ButtonNumber = "button" + i; где я = число раз вокруг петли

Когда я пытаюсь изменить цвет с помощью ButtonNumber.BackColor = Color.Red; он не позволит мне, потому что это не лечение ButtonNumber как кнопка, но как струна. Как это сделать? Благодаря! (Это мой первый раз программирует довольно много)

+1

Положите ваши кнопки в массив затем итерации по массиву. – Dai

+0

Кроме того, это WinForms, WPF, Silverlight, WebForms или что-то еще? – Dai

+0

Это WindowsForumsApplication1. Если возможно, вы можете показать мне пример. Я не знаю, что такое массив. –

ответ

1

Рассмотрите возможность использования Controls.Find найти управление по имени, а затем вы можете изменить его свойства:

for (int i = 1; i <= 100; i++) 
{ 
    var buttonName = string.Format("button{0}", i); 

    var foundControl = Controls.Find(buttonName, true).FirstOrDefault(); 

    if (foundControl != null) 
    { 
     // You can now set any common control property using the found control 
     foundControl.BackColor = Color.Red; 

     // If you need to set button-specific properties (i.e. properties 
     // that are not common to all controls), then cast it to a button: 
     var buttonControl = foundControl as Button; 

     if (buttonControl != null) 
     { 
      buttonControl.AutoEllipsis = true; 
     } 
    } 
} 
+0

Благодарим вас за помощь! Я устал от этого, но «кнопка {0}» подчеркнута красным цветом. Ошибка говорит: «Слишком много символов в буквальном буквале» Любые идеи? –

+0

FYI для OP. Вам нужно будет направить его на кнопку, если вам нужны конкретные свойства и методы Button - кнопка ButtonButton = (Button) buttonControl; ' – TyCobb

+0

где я должен помещать вещь для литья, и она должна исправить ошибку? –

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