if语句中只执行最后一条语句

本文关键字:语句 最后 一条 执行 if | 更新日期: 2023-09-27 18:04:33

我有一个excel 2010插件,我在Visual Studio 2010上工作,我需要用相同的信息填充三个组合框。所以我有一个for循环,然后我依次填充它们但是只填充最后一个。

public void tableScheme()
    {

        comboBox4.Items.Clear();
        comboBox5.Items.Clear();
        comboBox6.Items.Clear();
        for (int j = 1; j <= schemaTable.Rows.Count; j++)
        {

            //string tableColumns = ("["+Convert.ToString(schemaTable.Rows[j - 1][0])+"]");
            RibbonDropDownItem item = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
            item.Label = "testTEST";


            if (j == schemaTable.Rows.Count)
            {
                    comboBox4.Items.Add(item);
                    comboBox5.Items.Add(item);
                    comboBox6.Items.Add(item);

            }
            else
            {
                    comboBox4.Items.Add(item);
                    comboBox5.Items.Add(item);
                    comboBox6.Items.Add(item);

            }
        }
    }

我不知道为什么它只填充最后一个组合框。我知道这就是发生的事情,因为我把comboBox6和comboBox4切换了,然后它只填充了comboBox4。任何帮助将是伟大的,提前感谢!

if语句中只执行最后一条语句

正如注释所暗示的那样,您有对象引用问题。

这样重写你的add代码:

comboBox4.Items.Add(new RibbonDropDownItem() { Label = "the text" });
...

然后对您想要添加的每个项目重复此想法,这将为每个组合框添加一个新的RibbonDropDownItem实例。