2015-03-24 3 views
0

Я создаю машину для бинго, у меня есть код, после чего он будет проверять, какие номера были вызваны, и выделить те числа, которые были вызваны из машины бинго.C# Highlight Numbers less code snip

Мне интересно, есть ли лучший способ ограничить размер кода? а не перечислить все отдельно? Это поможет увеличить скорость и уменьшить размер программы.

спасибо.

private void btnCheckNumbs_Click(object sender, EventArgs e) 
    { 
     for (int i = 1; i <= Globals.NextBalls; i++) 
     { 
      if (Globals.balls[i] == 1) txtBoxs1.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 2) txtBoxs2.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 3) txtBoxs3.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 4) txtBoxs4.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 5) txtBoxs5.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 6) txtBoxs6.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 7) txtBoxs7.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 8) txtBoxs8.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 9) txtBoxs9.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 10) txtBoxs10.BackColor = Color.Aqua; 

      if (Globals.balls[i] == 11) txtBoxs11.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 12) txtBoxs12.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 13) txtBoxs13.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 14) txtBoxs14.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 15) txtBoxs15.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 16) txtBoxs16.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 17) txtBoxs17.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 18) txtBoxs18.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 19) txtBoxs19.BackColor = Color.Aqua; 
      if (Globals.balls[i] == 20) txtBoxs20.BackColor = Color.Aqua; 

Заявление идет до 90 ....

+6

Похоже, вы должны иметь * один * переменная - 'textBoxes' - который представляет собой массив или коллекцию , Вы действительно не хотите иметь 90 различных переменных ... –

ответ

0

попробовать это

for (int i = 1; i <= Globals.NextBalls; i++) 
{ 

    for (int k = 1; k <= 90; k++) 
    { 
     if (Globals.balls[i] == k) 
     { 
      TextBox txtName = (TextBox)this.Controls.Find("txtBoxs"+k.ToString(), true)[0]; 
      txtName.BackColor = Color.Aqua; 
     } 
    } 
} 
+0

Оператор if выглядит неправильно. Если значение индекса и шара не выстраивается в линию, это никогда не будет правдой. –

+0

я обновляю сообщение, а теперь? – ashkufaraz

+0

Ошибка 'int' не содержит определения для 'toString', и не может быть найден метод расширения 'toString', принимающий первый аргумент типа 'int' (вам не хватает директивы using или ссылки на сборку?) Также спасибо вы для быстрой обратной связи высоко ценили –