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。任何帮助将是伟大的,提前感谢!
正如注释所暗示的那样,您有对象引用问题。
这样重写你的add代码:
comboBox4.Items.Add(new RibbonDropDownItem() { Label = "the text" });
...
然后对您想要添加的每个项目重复此想法,这将为每个组合框添加一个新的RibbonDropDownItem
实例。