我正在处理Windows窗体应用程序。我有一个组合框。
我给了combobox
DropDownStyle property to DropDownList
。一个清晰的按钮我给出了这样的代码:
cmbvisitpurpose.Text = ""
如果组合框属性下拉列表然后它不会清除组合框中的选定文本。
所以在清晰的按钮代码中我必须给出
cmbvisitpurpose.SelectedIndex = -1
但是,在cmbvisitpurpose.SelectedIndex事件中,我已经写了很多代码用于另一个目的。虽然每次影响该代码时都清除,所以有没有其他方法来清除组合框选定的文本?
所以..
我不想使用SelectedIndex。我可以使用任何其他方法而不是SelectedIndex
答案 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();
}
希望这有帮助。