我正在使用组合框,我刷新组合框值,首先我删除所有值,然后重新填充它。但它没有用。代码复制了组合框中创建问题的值。这是我的代码。
for (int i = 0; i < updateCombo.Items.Count; i++)
updateCombo.Items.RemoveAt(i);
//----------- Now Adding New Values --------
updateCombo.Items.Add("Select an option . . .");
SqlCommand command = new SqlCommand(Queries.qry9, connection);
SqlDataReader reader = command.ExecuteReader();
请帮我解决这个问题。
答案 0 :(得分:3)
不确定为什么会发生这种情况 - 但如果Items.Count返回为0,那么您的循环将不会从项目列表中删除任何现有内容,您将获得重复项。
您是否尝试过清除列表中的所有内容,无论使用:
updateCombo.Items.Clear();
它可以节省您不必遍历所有内容,无论如何都要逐个删除它们。
答案 1 :(得分:1)
你的for循环是删除项目0,然后是1,然后是2,依此类推。 但是,当删除0处的项目时,列表中的该位置不会保持为空 - 其他项目实际上会向下移动一个。
因此,如果您将清算代码更改为:
for (int i = 0; i < updateCombo.Items.Count; i++)
updateCombo.Items.RemoveAt(0);
它应该有用。
但是,正如其他人所建议的那样,使用updateCombo.Items.Clear();
是一种更好的方法。