将相同的项目添加到多个组合框中
本文关键字:组合 添加 项目 | 更新日期: 2023-09-27 18:19:20
我有30个组合框,我必须在每个组合框中添加相同的项目。有没有比重复30次输入相同的代码更快的方法?
comboBox1.Items.Add("K");
comboBox1.Items.Add("H");
comboBox1.Items.Add("L");
comboBox1.Items.Add("T");
comboBox1.SelectedIndex = 0;
comboBox2.Items.Add("K");
comboBox2.Items.Add("H");
comboBox2.Items.Add("L");
comboBox2.Items.Add("T");
comboBox2.SelectedIndex = 1;
…
string[] values = new[] { "K", "H", "L", "T" };
foreach(string value in values)
{
combobox1.Items.Add(value);
combobox2.Items.Add(value);
}
如果ItemsCollection有一个AddRange方法就更好了:
string[] values = new[] { "K", "H", "L", "T" };
combobox1.Items.AddRange(values);
combobox2.Items.AddRange(values);
您可以使用OfType
方法遍历所有的组合框:
int i = 0;
foreach(var cmbBox in this.Controls.OfType<ComboBox>())
{
cmbBox.Items.Add("K");
cmbBox.Items.Add("H");
cmbBox.Items.Add("L");
cmbBox.Items.Add("T");
cmbBox.SelectedIndex = i++;
}
InitComboBox(comboBox1);
InitComboBox(comboBox2);
...
private void InitComboBox(ComboBox cb)
{
cb.Items.Add("K");
cb.Items.Add("H");
cb.Items.Add("L");
cb.Items.Add("T");
cb.SelectedIndex = 0;
}
你添加一个方法FillCombo
void FillCombo(Control ctrl)
{
foreach (ComboBox cb in ctrl.Controls)
{
cb.Items.Add("K");
cb.Items.Add("H");
cb.Items.Add("L");
cb.Items.Add("T");
cb.SelectedIndex = 0;
}
}
使用它:
FillCombo(this);