如何使用字符串引用组合框名称



我有一个用组合框填充的表,如下所示:

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>中,并使用它进行迭代。

最新更新