如何在DropDownStyle属性为下拉列表的情况下清除combox选定的文本
本文关键字:清除 情况下 combox 文本 下拉列表 DropDownStyle 属性 | 更新日期: 2023-09-27 17:51:06
我在windows窗体应用程序工作。我有一个组合框。我给comboboxDropDownStyle property to DropDownList
。一个清晰的按钮,我给了这样的代码:
cmbvisitpurpose.Text = ""
如果组合框属性下拉列表,那么它不会清除组合框中的选定文本。
在clear button code中我必须输入
cmbvisitpurpose.SelectedIndex = -1
但是,在cmvisit的目的。selecteindex事件我写了很多代码,有些别的目的。每次清除都会影响代码,那么还有其他方法来清除组合框选中的文本吗?所以。
我不想使用SelectedIndex。是否有其他方法可以代替SelectedIndex
你可以尝试使用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();
}
如果你将DropDownStyle设置为DropDownList,那么恐怕你没有任何其他方法来清除所选文本。我想不出你在评论中提到的任何"其他方法"。如果你试图清除选择,SelectionIndexChanged将触发。
一个简单的解决方案,根据我将是一个if子句在你的事件处理程序只是绕过情况下,当SelectedIndex是-1
如果您根本不希望事件触发,一种方法是在每次清除选定项时删除事件处理程序。比如点击一个按钮,你可以这样做:
cmbvisitpurpose.SelectedIndexChanged -= cmbvisitpurpose_SelectedIndexChanged;
cmbvisitpurpose.SelectedIndex = -1;
cmbvisitpurpose.SelectedIndexChanged += cmbvisitpurpose_SelectedIndexChanged;