我有一个用组合框填充的表,如下所示:
rowCombobox.Name = "rowCombobox" + c;
其中c是它所在行的编号。
当我在表的行中循环时,是否可以稍后使用字符串引用该组合框,就像我反向命名组合框一样?
例如:
String comboname = "rowCombobox" + c;
如果是,我将如何实施?
如有任何帮助或建议,我们将不胜感激!
是的,如果您在运行时不更改名称,您可以通过他的名称引用控件,例如:
string comboBoxName = "comboBox1";
ComboBox comboBox = (ComboBox)this.Controls[comboBoxName];
如果显式设置控件的名称,则有效也可以从窗体类中的字段调用控件
下面是我喜欢的循环一组控件的方法:
public void SomeMethod()
{
ComboBox[] comboboxes = new ComboBox[]
{
combobox1, combobox2, combobox3, combobox4,
combobox5, combobox6, combobox7, combobox8,
};
for (int i = 0; i < comboboxes.Length; i++)
{
// Do something with each `comboboxes[i]`
}
}
这是强类型的,并本地化到您正在使用的方法。如果您以破坏此代码的方式更改任何控件,则会出现编译时错误,因此可以快速修复。
现在,如果您正在动态生成控件,那么只需将每个ComboBox
添加到一个List<ComboBox>
中,并使用它进行迭代。