C# 如何循环使用许多具有类似名称的组合框?

C# 如何循环使用许多具有类似名称的组合框?,c#,C#,我有许多名字相似的组合框,如ComboBox1、ComboBox2、ComboBox3等。我如何循环遍历这些组合框并获取它们的一些参数。 在VB.NET中是这样的: 表示k为整数=1到50 Console.WriteLine(Me.GroupBox1.Controls(“组合框”&k)。SelectedIndex) 下一个 我可以在C#上做类似的事情吗?你可以试试这种方法 for(int k=0;k0) { 组合框cb=arr[0]作为组合框; Console.WriteLine(cb.Sel

我有许多名字相似的组合框,如ComboBox1、ComboBox2、ComboBox3等。我如何循环遍历这些组合框并获取它们的一些参数。
在VB.NET中是这样的:

表示k为整数=1到50
Console.WriteLine(Me.GroupBox1.Controls(“组合框”&k)。SelectedIndex)
下一个
我可以在C#上做类似的事情吗?

你可以试试这种方法

for(int k=0;k<50;i++)
{
Control[]arr=this.GroupBox1.Controls.Find(“组合框”+k,true);
如果(arr.Length>0)
{
组合框cb=arr[0]作为组合框;
Console.WriteLine(cb.SelectedIndex);
}
}
}

不,这不起作用。虽然可以使用FindControl查找Name属性,但它甚至不是唯一的字符串。最好将它们收集在一个列表中,并在列表上循环。如果控件集合有一个共同的父控件,您可以尝试通过在控件集合上循环来进行收集。
在VB.NET中是这样的:
-您可以在C#中进行收集。并不是说这是一个很好的方法。这段代码与原来的VB代码做了一件不同的事情,也是最低效的方式。
        for (int k = 0; k < 50; i++)
        {
            Control[] arr = this.GroupBox1.Controls.Find("ComboBox" + k, true);
            if(arr.Length > 0)
            {
                ComboBox cb = arr[0] as ComboBox;
                Console.WriteLine(cb.SelectedIndex);
            }
        }
    }