2013-07-25 24 views
1

我想动态调用标签的标签,但不知道该怎么做。动态调用在C#中

我要让取决于整数标签可见。

因此,如果int i = 1,那么label1应该变为可见,如果i = 2,然后label2应该变成可见,等等等等。

我该怎么做?

int i = word.indexOf("t"); 
//This is where I need the label to be dynamically called 

我试图在懒惰的尝试("label" + i.ToString()).Visible = true;"

+1

的WinForms? WPF? ASP.NET? –

+0

我正在使用WinForms – trivk96

回答

2

这里是一个动态的解决方案:

foreach (var label in Controls.OfType<Label>()) 
    label.Visible = (label.Name == "label" + i); 

需要注意的是:

  1. 这将隐藏未命名"label" + i所有标签。如果存在的形式和/容器

  2. 在上面的代码工作,如果标记物是以下形式的直接后代上的任何其他标签,可能会需要额外的过滤逻辑。如果不是这种情况(例如,标签是一个名为panel1面板的子女),那么你就需要更换Controlspanel1.Controls

+0

我喜欢这个解决方案,因为它处理元数据。 +1 – Raptor

+0

谢谢。这是我需要的 – trivk96

0

Label1.Visible =(我== 1); //如果我不为1,那么LABEL1是不可见的