-4

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

我希望在选定的更改索引中combobox1加载一些值。值已加载,但是当我移动到下一个索引时,我编写了以下代码:combobox2combobox1

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

3 回答 3

2

我想您的组合框 DropDownStyle 属性设置为 DropDown。在这种情况下,您需要致电

comboBox3.Items.Clear();
comboBox3.ResetText();
comboBox3.SelectedIndex = -1;

如果您将属性设置为 DropDownStyle 只需调用 Items.Clear 就足够了

如果您在代码中的某处设置了 DataSource,Microsoft 支持描述了一种清除项目的不同方法,首先订阅事件 DataSourceChanged 然后调用

comboBox3.DataSource = null;

事件的代码应该是

private void comboBox3_DataSourceChanged(object sender, System.EventArgs e)
{
    ComboBox ctb = (ComboBox) sender;
    if (ctb.DataSource == null)
        ctb.Items.Clear();
}
于 2013-01-26T14:55:42.427 回答
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++;
        } 
于 2013-01-26T14:59:42.130 回答
1

我希望我的组合框 1 将一些值加载到组合框 2中

我不知道这是否是一个错字,但您可能正在查看错误的组合框。

于 2013-01-26T15:16:04.173 回答