我有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;
......等等..
答案 0 :(得分:1)
您可以使用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++;
}
答案 1 :(得分: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);
答案 2 :(得分:1)
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;
}
答案 3 :(得分: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);