首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#从连接文本调用对象

C#从连接文本调用对象
EN

Stack Overflow用户
提问于 2015-12-07 20:19:01
回答 2查看 44关注 0票数 2

我试图从for循环中调用多个具有多个名称的标签,但问题是我不想使用"foreach“在所有控件中循环。

我想直接提及这个问题,例如:

代码语言:javascript
复制
for(ai = 2; ai < 11 ; ai ++)
{
    this.Controls("label" + ai).Text = "SomeRandomText";
}

我该怎么做?

我已经试着在网上找到这个问题了,但我发现的都是用"foreach“循环回答的问题。谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-07 20:28:22

假设您的标签通过"lable2“命名为"label10",那么您可以这样做:

代码语言:javascript
复制
for(int ai = 2; ai < 11 ; ai++)
{
    this.Controls["label" + ai].Text = "SomeRandomText";
}
票数 0
EN

Stack Overflow用户

发布于 2015-12-07 20:24:18

这里有一个不依赖于控件名称的解决方案,因此您可以随时更改标签的名称,而不会破坏代码。

代码语言:javascript
复制
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属性的值。只需确保索引检查代码行与您选择的标记值!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34142409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档