How do you use the VALUE of an array number as opposed to what number in the array it is for determining case? In my code:
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;
}
}
When this is run, it uses the x in position[] as opposed to position[x]'s value for determining which case to use. For instance, when x is 0, but position[x]'s value is 1, it uses case 0. How do I get the value instead?
EDIT: My code was indeed the problem.... For some reason debugging early in the morning has the effect of creating false images... :P As an FYI, here was the correct code...
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];
开发者_C百科 break;
case 2:
label3.Text = people[x];
break;
}
In the upper first appearance of position[x], I instead had placed only x. Thanks for all the help!
Try this:
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;
}
}
Maybe something easier would be to say:
for(int x = 0; x < 3; x++)
{
Label label = MyForm.ActiveForm.Controls["label" + position[x]] as Label;
if (label != null) label.Text = people[x];
}
精彩评论