繁体   English   中英

我无法到达面板上的 Label

[英]I can't reach the Label on the Panel

public void blockControl()
{
    for (int i = 0; i < 10; i++)
    {
        if (game.wordCount < i + 1)
        {
            Label lbl = (Label)game.Controls["wordLabel" + (i + 1).ToString()];
            lbl.Visible = false;
            Panel a1 =  (Panel)game.Controls["wordLabel" + (i + 1).ToString()];
            a1.Visible = false;
        }
    }
}

这就是我访问用户控件中标签的方式。

但是如果我在面板上贴标签 lbl=0 正在发生

我该怎么做才能达到?

我这样解决了

public void blockControl()
{
    for (int i = 0; i < 10; i++)
    {
        if (form1.harfSayisi < i + 1)
        {
            Panel abc = (Panel)form1.Controls["panel" + (i + 1).ToString()];
            Label lbl = (Label)abc.Controls["lblHarf" + (i + 1).ToString()];
            lbl.Visible = false;
            abc.Visible = false;
        }
    }
}

您可以使用Controls.Find()递归搜索。 这样您就不需要先获得对 Panel 的引用。 无论控件在其他容器中嵌套的深度如何,搜索都会找到该控件。

缩短的代码可以是:

Label lbl = form1.Controls.Find("lblHarf" + (i + 1).ToString(), true).FirstOrDefault() as Label;
if (lbl != null)
{
    // ... do something with "lbl" ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM