Как Вы используете ЗНАЧЕНИЕ номера массива в противоположность тому, какое число в массиве это для определения случая? В моем коде:
for (int x = 0; x < 3; x++)
{
switch (position[x])
{
case 0:
label1.Text = people[x];
break;
case 1:
label2.Text = people[x];
break;
case 2:
label3.Text = people[x];
break;
}
}
Когда это выполняется, это использует x в положении [] в противоположность значению положения [x] для определения который случай использовать. Например, когда x 0, но значение положения [x] равняется 1, это использует случай 0. Как я получаю значение вместо этого?
Править: Мой код был действительно проблемой.... По некоторым причинам отладка рано утром имеет эффект создания ложных изображений... :P Как к вашему сведению, здесь был правильный код...
for (int x = 0; x < 3; x++)
{
if (position[x] == 2)
{
position[x] = 0;
}
else
position[x]++;
}
for (int x = 0; x < 3; x++)
{
int val = position[x];
switch (val)
{
case 0:
label1.Text = people[x];
break;
case 1:
label2.Text = people[x];
break;
case 2:
label3.Text = people[x];
break;
}
В верхнем первом выступлении положения [x] я вместо этого поместил только x. Спасибо за всю справку!
Попробуйте это:
for (int x = 0; x < 3; x++)
{
int val = position[x];
switch (val)
{
case 0:
label1.Text = people[x];
break;
case 1:
label2.Text = people[x];
break;
case 2:
label3.Text = people[x];
break;
}
}
Может быть, что-то легче было бы сказать:
for(int x = 0; x < 3; x++)
{
Label label = MyForm.ActiveForm.Controls["label" + position[x]] as Label;
if (label != null) label.Text = people[x];
}