C#从连接的文本中调用对象
本文关键字:调用 对象 文本 连接 | 更新日期: 2023-09-27 18:25:58
我试图从for循环中调用多个具有多个名称的标签,但问题是我不想使用"foreach"来循环所有控件。
我想直接引用它,例如:
for(ai = 2; ai < 11 ; ai ++)
{
this.Controls("label" + ai).Text = "SomeRandomText";
}
我该怎么做?
我已经试着在网上找到这个问题,但我找到的都是带有"foreach"循环的答案。谢谢
假设您的标签通过"label10"命名为"lable2",那么您可以这样做:
for(int ai = 2; ai < 11 ; ai++)
{
this.Controls["label" + ai].Text = "SomeRandomText";
}
这里有一个不依赖于控件名称的解决方案,因此您可以随时更改标签的名称,而不会破坏代码。
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";
}
}
}
然后,您所需要做的就是为每个想要更新的控件的Tag属性分配一个介于2和11之间的值。您可以通过代码设置此属性,也可以在设计器中设置该属性。
您也可以根据自己的意愿随意更改Tag属性的值。只需确保索引在代码行中与您选择的标记值一致即可!