Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我有多个标签如何在C中以编程方式循环它们#_C#_.net_Vb.net - Fatal编程技术网

C# 我有多个标签如何在C中以编程方式循环它们#

C# 我有多个标签如何在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 & "

我有多个标签(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 & "")
        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;
}