我已经尝试了所有可能的方法来清除组合框中的数据,但令人惊讶的是没有任何工作。
我希望我的combobox1
在选定的combobox2
更改索引中将一些值加载到combobox1
。这些值已加载,但当我移动到下一个索引时,我已编写此代码:
if (SView._StudentSchool_.Equals("Pre-School"))
{
TB.TimeBlock("Pre-School");
comboBox3.Enabled = true;
comboBox3.Items.Clear();
for (int i = 1; i < TB.i+1; i++)
{
comboBox3.Items.Add(TB.TimeBlock_[j]);
j++;
}
}
else if (SView._StudentSchool_.Equals("Kindergarten"))
{
TB.TimeBlock("Kindergarten");
comboBox3.Enabled = true;
comboBox3.Items.Clear();
for (int i = 1; i < TB.i + 1; i++)
{
comboBox3.Items.Add(TB.TimeBlock_[j]);
j++;
}
}
else if (SView._StudentSchool_.Equals("Primary School"))
{
TB.TimeBlock("Primary School");
comboBox3.Enabled = true;
comboBox3.Items.Clear();
for (int i = 1; i < TB.i + 1; i++)
{
comboBox3.Items.Add(TB.TimeBlock_[j]);
j++;
}
}
Clear()
功能不起作用,其他方法(如.datasourse = null
或.Text = ""
)或使用如下循环删除项目也不起作用:
for (int i = 0; i < comboBox3.Items.Count; i++)
{
comboBox3.Items.RemoveAt(i);
i--;
}
答案 0 :(得分:2)
我认为你的组合框DropDownStyle属性设置为DropDown。 在这种情况下,您需要致电
comboBox3.Items.Clear();
comboBox3.ResetText();
comboBox3.SelectedIndex = -1;
如果您将属性设置为DropDownStyle,只需调用Items.Clear就足够了
如果您已在代码中的某处设置了DataSource Microsoft Support describes另一种清除项目的方法,请首先订阅事件DataSourceChanged然后调用
comboBox3.DataSource = null;
该活动的代码应为
private void comboBox3_DataSourceChanged(object sender, System.EventArgs e)
{
ComboBox ctb = (ComboBox) sender;
if (ctb.DataSource == null)
ctb.Items.Clear();
}
答案 1 :(得分:1)
这对于评论来说太大了,所以这是一个CW答案......
根据您展示的内容,如果您这样做,则不需要3个if语句:
TB.TimeBlock(SView._StudentSchool_);
comboBox3.Enabled = true;
comboBox3.Items.Clear();
for (int i = 1; i < TB.i + 1; i++)
{
comboBox3.Items.Add(TB.TimeBlock_[j]);
j++;
}
答案 2 :(得分:1)
我希望我的combobox1将一些值加载到 combobox2
我不知道这是不是一个错字,但你可能会看错了组合框。
答案 3 :(得分:0)
查看这篇文章,它有你要搜索的答案。