1

我正在尝试动态调用标签,但不知道该怎么做。

我想根据整数使标签可见。

因此,如果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;"了一个懒惰的尝试。

4

2 回答 2

3

这是一个动态解决方案:

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

注意:

  1. 这将隐藏所有未命名的标签"label" + i。如果表单/容器上有任何其他标签,您可能需要额外的过滤逻辑

  2. 如果标签是表单的直接后代,则上述代码有效。如果不是这种情况(例如,标签是名为 的面板的子级panel1),那么您需要替换Controlspanel1.Controls

于 2013-07-25T16:17:01.220 回答
0

Label1.Visible = (i == 1); // 如果 i 不为 1,则 label1 不可见

于 2013-07-25T16:17:22.540 回答