将相同的项添加到多个组合框中

时间:2014-08-24 19:36:21

标签: c#

我有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;

......等等..

4 个答案:

答案 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);