[英]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.