我正在尝试使用表单制作一个小型打字游戏,并需要一些标签帮助。所以,我需要创建几个带有不同文本的标签,我想知道是否有办法用Label word = new Label()
来实现它,以便我可以在以后的任何时间控制任何或至少第一次创建的标签? / p>
也许我应该阅读更多关于某些特定主题的内容?
答案 0 :(得分:0)
您可以使用array标签,稍后通过索引
访问它们Label []words = new Label[10];
如果您在编译时不知道您需要多少个标签,那么您可以使用List。
List<Label> lstLabels = new List<Label>();
答案 1 :(得分:0)
如果您有固定的标签限制,那么您可以执行上面提到的Adil,并可以在以后访问它们。就像
Label []words = new Label[10];
但是,如果您有一个动态的标签数量,那么在运行时将它们添加到表单中,然后使用Reflection访问它们。
foreach(Control c in yourForm.Controls)
if(c is label)
{
//your code
}
答案 2 :(得分:0)
您可以将标签创建为:
Label l = new Label();
l.Location = somepoint;
l.Text = "text" + this.Controls.Count;
this.Controls.Add(l);
之后检索所有标签(在此示例中,它将位于按钮单击事件下):
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
}
标签的顺序与添加的顺序相同。
如果您只想根据文本框中输入的标签文本获得1个标签(因为您说的是所有不同的文字):
Label c1 = this.Controls.OfType<Label>().Where(l => l.Text.ToLower() == textBox1.Text.ToLower()).Single();