C# 我有多个标签如何在C中以编程方式循环它们#
我有多个标签(label1、label2、label3等),我希望通过编程方式循环它们。我已经在vb.net中完成了这项工作,但在C#中同样不起作用 我得到了错误 存在显式转换 正确的方法是什么 下面是VB.net的代码,它可以工作,但不适用于C# C# vb.netC# 我有多个标签如何在C中以编程方式循环它们#,c#,.net,vb.net,C#,.net,Vb.net,我有多个标签(label1、label2、label3等),我希望通过编程方式循环它们。我已经在vb.net中完成了这项工作,但在C#中同样不起作用 我得到了错误 存在显式转换 正确的方法是什么 下面是VB.net的代码,它可以工作,但不适用于C# C# vb.net Do While count < 18 Dim uc1 As UserControl = TabPage3.Controls("AbsenceUC" & count.ToString & "
Do While count < 18
Dim uc1 As UserControl = TabPage3.Controls("AbsenceUC" & count.ToString & "")
Dim TxtEmployeeID As TextBox = uc1.Controls("txtEmpId")
Dim TxtAbsenteeCode As TextBox = uc1.Controls("TextBox2")
Dim txttext As String = TxtEmployeeID.Text
Loop
计数<18时执行
Dim uc1 As UserControl=TabPage3.Controls(“缺席”和count.ToString&“”)
Dim TxtEmployeeID为TextBox=uc1.Controls(“txtEmpId”)
Dim txtAbscenteCode As TextBox=uc1.控件(“TextBox2”)
Dim txttext As String=TxtEmployeeID.Text
环
您可以使用以下代码循环该表单上的所有标签:
var labels = tabPage1.Controls.OfType<Label>();
foreach (Label lbl in labels)
{
// lbl.Content = "Do stuff here..."
}
您可以像这样循环所有控件
foreach (Control c in this.Controls)
{
if (c is Label) // Here check if the control is label
{
c.BackColor = Color.Red; // you code goes here
}
}
while(计数<18)
{
//查找字符串键
var uc1=tabPage3.Controls.Find(“缺席”,true).Where(x=>此处的Where子句).Single();
//将控件强制转换为文本框
TextBox TxtEmployeeID=uc1.Controls.Find(“txtEmpId”,true).Single()作为TextBox;
TextBox txtAbscenteCode=uc1.Controls.Find(“TextBox2”,true).Single()作为TextBox;
字符串txttext=TxtEmployeeID.Text;
}
标签是ContentControl
而不是UserControl
所以使用ContentControl uc1=tabPage1.Controls[“lblprice”+control]
使用数组而不是控件
属性。@slvnperron感谢您的回答。我尝试了您建议的代码,但它无法识别“ContentControl”。错误:键入或…“ContentControl”有什么想法吗?@omachu23那么您可以直接使用标签。我以为你有WPF申请<代码>标签uc1=tabPage1.控件[“lblprice”+控件]作为标签代码>
Label uc1 = (Label)tabPage1.Controls["lblprice" + control];
foreach (Control c in this.Controls)
{
if (c is Label) // Here check if the control is label
{
c.BackColor = Color.Red; // you code goes here
}
}
while(count < 18)
{
//Find string key
var uc1 = tabPage3.Controls.Find("AbsenceUC", true).Where(x=> YOUR WHERE CLAUSE HERE).Single();
//Cast your controls to TextBoxes
TextBox TxtEmployeeID = uc1.Controls.Find("txtEmpId", true).Single() as TextBox;
TextBox TxtAbsenteeCode = uc1.Controls.Find("TextBox2", true).Single() as TextBox;
String txttext = TxtEmployeeID.Text;
}