我有一个excel 2010加载项,我正在Visual Studio 2010中工作,我需要用相同的信息填充三个comboBox。所以我有一个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);
}
}
}
我不确定为什么它只填充最后一个comboBox。我知道这就是发生的事情因为我用comboBox4切换了comboBox6然后它只填充了comboBox4。任何帮助都会很棒,提前谢谢!
答案 0 :(得分:0)
正如评论所暗示的那样,您有一个对象引用问题。
这样重写您的添加代码:
comboBox4.Items.Add(new RibbonDropDownItem() { Label = "the text" });
...
然后对要添加的每个项目重复这个想法,这将为每个组合框的每个添加提供一个新的RibbonDropDownItem
实例。