C# 仅在if语句中执行最后一条语句

C# 仅在if语句中执行最后一条语句,c#,combobox,vsto,excel-2010,C#,Combobox,Vsto,Excel 2010,我有一个excel 2010加载项正在Visual Studio 2010中工作,我需要用相同的信息填充三个组合框。所以我有一个for循环,然后我会依次填充它们,但只有最后一个被填充 public void tableScheme() { comboBox4.Items.Clear(); comboBox5.Items.Clear(); comboBox6.Items.Clear(); for (int j = 1;

我有一个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);


            }

        }
    }
public void表模式()
{
comboBox4.Items.Clear();
comboBox5.Items.Clear();
comboBox6.Items.Clear();

对于(intj=1;j,正如注释可能建议的那样,您有一个对象引用问题

重写您的添加代码,如下所示:

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

然后对你想添加的每个项目重复这个想法,这将为每个组合框添加的每个项目提供一个新的
RibbonDropDownItem

我认为这是因为你的项目变量只能在一个组合框中或类似的东西中。所以,如果我为每个组合框创建一个不同的变量/项目对象,可能会吗?我不知道是什么原因但是你可以试试。我不知道这是怎么做的:RibbonDropDownItem,但我认为这使得该项目只能分配给一个框。试着每隔几秒钟使用断点或类似的方法将项目分配给另一个组合框,以便你可以检查。