C# 在我的选项卡页面上使用Foreach项不会';我找不到零钱
我有一个选项卡控件,其中包含4个选项卡页: 我需要为每个选项卡页中的每个项目使用for循环。 下面的代码对我来说没有任何改变C# 在我的选项卡页面上使用Foreach项不会';我找不到零钱,c#,C#,我有一个选项卡控件,其中包含4个选项卡页: 我需要为每个选项卡页中的每个项目使用for循环。 下面的代码对我来说没有任何改变 foreach (Control c in SubMenuTabControl.Controls) { if(c is Label) c.Text="Hello"; } 您需要两次迭代,一次是选项卡控件的选项卡页,另一次是选项卡页本身的控件 例如: foreach (TabPage tab in SubMenuTabControl.TabPages)
foreach (Control c in SubMenuTabControl.Controls)
{
if(c is Label)
c.Text="Hello";
}
您需要两次迭代,一次是选项卡控件的选项卡页,另一次是选项卡页本身的控件 例如:
foreach (TabPage tab in SubMenuTabControl.TabPages)
{
foreach (var control in tab.Controls)
{
var label = control as Label;
if (label == null) continue;
label.Text = "hello";
}
}
正如我在评论
tabControl
中所说,它包含TabPages
,因此您需要一个嵌套的foreach
循环才能进入选项卡并进入标签中
foreach (TabPage tabControl in SubMenuTabControl.Controls)
{
foreach (Control item in tabControl.Controls)
{
if (item is Label)
//your logic here
item.Text = "Hello";
}
}
对于服务器端asp.net控件:
foreach (Control c in controlToCheck.Controls)
{
if (c is Label)
((Label)c).Text = "Hello";
}
用于html标签
foreach (Control c in controlToCheck.Controls)
{
if (c is LiteralControl)
((LiteralControl)c).Text = "Hello";
}
子菜单abcontrol.Controls
是否包含任何符合is标签
条件的对象?调试时,您循环哪些对象?它们是你想要的东西吗?其中是否有Label
s?是。如果我要使用SubMenuTabControl.SelectedTab.Controls,它只能在我选择的选项卡页面上工作,请尝试将c.Text=“Hello”
替换为Console.WriteLine(“标签”)
并运行您的代码。检查您的控制台是否包含“标签”。如果没有,则表示数组中没有任何标签。@Dim:那么它听起来像子菜单控件。控件不包含您认为它包含的控件。那么它包含什么呢?子菜单abcontrol
上是否有枚举控件对象的其他属性?子菜单abcontrol.控件中的控件是否包含您要查找的实际控件?您需要在调试器中检查此信息,而不仅仅是盲目编程。tabControl
包含TabPages
,因此需要嵌套foreach
循环才能进入选项卡并进入标签