【发布时间】:2014-09-29 13:38:35
【问题描述】:
我在一个名为 C# 的 winform(例如 10)上有一些组合框:comboBox1、coboBox2 和 comboBoxN。如何在这样的 for 循环中访问所有这些:
for(int i = 0; i < 10; i++)
{
comboBox[i].text = "Hello world";
}
【问题讨论】:
我在一个名为 C# 的 winform(例如 10)上有一些组合框:comboBox1、coboBox2 和 comboBoxN。如何在这样的 for 循环中访问所有这些:
for(int i = 0; i < 10; i++)
{
comboBox[i].text = "Hello world";
}
【问题讨论】:
你可以使用OfType方法
var comboBoxes = this.Controls
.OfType<ComboBox>()
.Where(x => x.Name.StartsWith("comboBox"));
foreach(var cmbBox in comboBoxes)
{
cmbBox.Text = "Hello world";
}
【讨论】:
您可以通过这种方式访问表单中的所有组合框(假设this 是一个表单):
List<ComboBox> comboBoxList = this.Controls.OfType<ComboBox>();
然后你只需要遍历它们
foreach (ComboBox comboBox in comboBoxList)
{
comboBox.Text = "Hello world!";
}
【讨论】:
表单有一个Controls property,它返回所有控件的集合,其中can be indexed by the name of the control:
for(int i = 0; i < 10; i++)
{
var comboBox = (ComboBox)this.Controls["comboBox" + i.ToString()];
comboBox.text = "Hello world";
}
【讨论】:
this.Controls["comboBox" + i.ToString()]