C# 仅在if语句中执行最后一条语句
我有一个excel 2010加载项正在Visual Studio 2010中工作,我需要用相同的信息填充三个组合框。所以我有一个for循环,然后我会依次填充它们,但只有最后一个被填充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;
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,但我认为这使得该项目只能分配给一个框。试着每隔几秒钟使用断点或类似的方法将项目分配给另一个组合框,以便你可以检查。