我试图从for循环中调用多个具有多个名称的标签,但问题是我不想使用"foreach“在所有控件中循环。
我想直接提及这个问题,例如:
for(ai = 2; ai < 11 ; ai ++)
{
this.Controls("label" + ai).Text = "SomeRandomText";
}我该怎么做?
我已经试着在网上找到这个问题了,但我发现的都是用"foreach“循环回答的问题。谢谢!!
发布于 2015-12-07 20:28:22
假设您的标签通过"lable2“命名为"label10",那么您可以这样做:
for(int ai = 2; ai < 11 ; ai++)
{
this.Controls["label" + ai].Text = "SomeRandomText";
}发布于 2015-12-07 20:24:18
这里有一个不依赖于控件名称的解决方案,因此您可以随时更改标签的名称,而不会破坏代码。
foreach (var control in this.Controls)
{
if (control is Label)
{
int index;
if (control.Tag != null && int.TryParse(control.Tag.ToString(), out index) && index >= 2 && index < 11)
{
((Label)control).Text = "SomeRandomText";
}
}
}然后,您所需要做的就是为每个控件的标记属性分配一个介于2到11之间的值,您想要更新这些属性。可以通过代码设置此属性,也可以在设计器中设置该属性。
您还可以根据需要更改Tag属性的值。只需确保索引检查代码行与您选择的标记值!
https://stackoverflow.com/questions/34142409
复制相似问题