首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何管理多个标签

如何管理多个标签
EN

Stack Overflow用户
提问于 2013-07-29 23:49:12
回答 3查看 176关注 0票数 0

我正在尝试做一个使用表单的小打字游戏,需要一些标签的帮助。所以,我需要创建几个具有不同文本的标签,我想知道是否有一种方法可以用Label word = new Label()来实现,这样我就可以在以后的任何时候控制任何或至少第一个创建的标签?

也许有一些特定的主题,我应该多读一些?

EN

回答 3

Stack Overflow用户

发布于 2013-07-29 23:50:42

您可以使用标签的array,并在以后通过索引访问它们

代码语言:javascript
复制
Label []words = new Label[10];

如果在编译时不知道需要多少标签,那么可以使用List

代码语言:javascript
复制
List<Label> lstLabels = new List<Label>();
票数 0
EN

Stack Overflow用户

发布于 2013-07-29 23:53:49

如果你有一个固定的标签限制,那么你可以做Adil上面提到的事情,并可以访问它们的later.Like,

代码语言:javascript
复制
 Label []words = new Label[10];

但是,如果标签的数量是动态的,那么一个选择就是在运行时将它们添加到窗体中,然后使用反射来访问它们。

代码语言:javascript
复制
  foreach(Control c in yourForm.Controls)
  if(c is label)
  {
      //your code
  }
票数 0
EN

Stack Overflow用户

发布于 2013-07-30 00:56:27

您可以创建标签,如下所示:

代码语言:javascript
复制
Label l = new Label();
l.Location = somepoint;
l.Text = "text" + this.Controls.Count;
this.Controls.Add(l);

之后检索所有标签(在本例中,它将位于按钮单击事件下):

代码语言:javascript
复制
    private void button1_Click(object sender, EventArgs e)
    {
        //assuming there might be other controls,
        //it will get all labels in the form
        Label[] c = this.Controls.OfType<Label>().ToArray();

        //...do what you need
    }

标签的顺序与添加的顺序相同。

如果你只想获得一个标签,例如,在文本框中输入的标签的文本(因为你说有所有不同的文本):

代码语言:javascript
复制
Label c1 = this.Controls.OfType<Label>().Where(l => l.Text.ToLower() == textBox1.Text.ToLower()).Single();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17928483

复制
相关文章

相似问题

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