如果DropDown Style属性为DropDownList,如何清除组合框选定的文本?

时间:2014-03-20 06:25:10

标签: c# winforms combobox

我正在处理Windows窗体应用程序。我有一个组合框。 我给了combobox
 DropDownStyle property to DropDownList。一个清晰的按钮我给出了这样的代码:

cmbvisitpurpose.Text = "" 

如果组合框属性下拉列表然后它不会清除组合框中的选定文本。

所以在清晰的按钮代码中我必须给出

cmbvisitpurpose.SelectedIndex = -1

但是,在cmbvisitpurpose.SelectedIndex事件中,我已经写了很多代码用于另一个目的。虽然每次影响该代码时都清除,所以有没有其他方法来清除组合框选定的文本? 所以..
我不想使用SelectedIndex。我可以使用任何其他方法而不是SelectedIndex

2 个答案:

答案 0 :(得分:0)

如果您将DropDownStyle设置为DropDownList,那么我担心您没有其他方法可以清除所选文本。我不能想到你在评论中提到的任何“另一种方法”。如果您尝试清除选择SelectionIndexChanged将触发。

根据我的一个简单的解决方案就是在事件处理程序中使用if子句来绕过SelectedIndex为-1的情况

如果您不希望事件全部触发,则可以在每次清除选择时删除事件处理程序。按一下按钮点击即可:

 cmbvisitpurpose.SelectedIndexChanged -= cmbvisitpurpose_SelectedIndexChanged;
 cmbvisitpurpose.SelectedIndex = -1;
 cmbvisitpurpose.SelectedIndexChanged += cmbvisitpurpose_SelectedIndexChanged;

答案 1 :(得分:0)

在您选择要删除的元素之后,您可以尝试使用RemoveAt

private void button1_Click(object sender, EventArgs e)
    {
        //Remove item at Index 1
        comboBox1.Items.RemoveAt(comboBox1.SelectedIndex = 1) ;
    }

您甚至可以通过这种方式清除所有元素:

private void button1_Click(object sender, EventArgs e)
    {
       //Remove all the item 
        comboBox1.Items.Clear();
    }

希望这有帮助。