清除ComboBox

时间:2013-01-26 14:48:29

标签: c# winforms

我已经尝试了所有可能的方法来清除组合框中的数据,但令人惊讶的是没有任何工作。

我希望我的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--;
}

4 个答案:

答案 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)

查看这篇文章,它有你要搜索的答案。

ComboBox has its old value after Clear()