如何清除组合框?

Posted

技术标签:

【中文标题】如何清除组合框?【英文标题】:How do I clear a combobox? 【发布时间】:2012-03-08 11:23:32 【问题描述】:

我有一些设置为下拉列表的组合框,用户可以在其中选择一个数字。我还有一个清除按钮,应该清除组合框中的文本,但我似乎无法得到它。我试过了:

 //doesn't work
 cboxHour.Text = "";

//doesn't work
cboxHour.ResetText();

这似乎应该如此直截了当,但我就是不明白。

【问题讨论】:

How to clear combo box contents in vb.net 的可能重复项 【参考方案1】:

你试过cboxHour.Items.Clear()吗?

【讨论】:

这是赢家。我会尽可能将您标记为已选择的答案。 如果你的组合框是数据有界的,那么在清除之前设置comboBoxName.DataSource = null 这可能不够。可能还需要调用下面@beanmf 回答的 ResetText()。 如果使用组合框的“DataSource”属性,我们必须按如下方式分配 null:modeComboBox.DataSource = null; (modeComboBox.DataSource = new BindingSource(dict, null);)【参考方案2】:

如果您只想清除当前选择,但保留列表中的所有项目,您可以使用:

cboxHour.SelectedIndex = -1

【讨论】:

当我使用它时, selectedIndexChanged 事件会触发。在 SelectedIndexChanged 事件中,如果 SelectedIndex 为 -1,我会从事件中返回。【参考方案3】:

ComboBox 不是数据绑定时,我发现我需要两者:Clear() 删除项目但仍保留SelectedItem 的文本,而ResetText() 删除该文本。 VS2008

ComboBox.Items.Clear();
ComboBox.ResetText();

【讨论】:

同意以上。我在 VS2013 中遇到了同样的问题,其中 4 个调用 Items.Clear()、SelectedIndex=-1、SelectedText=string.empty 和 SelectedText=string.empty 是不够的。 Items.Clear() 后跟 ResetText() 成功了。【参考方案4】:

你可以使用

Cbo.Items.Clear();

Cbo.DataSource = null;

如果你有绑定。

【讨论】:

【参考方案5】:

您的问题的答案是:

metroComboBox1.SelectedItem = null;
anycomboBox1.SelectedItem=null;

【讨论】:

combox.items.clear() 从列表中删除项目,而将所选项目设置为 null 会清除所选数据。优秀。谢谢。 如果您在将索引设置为 -1 时遇到问题,请尝试将 selecteditem 设置为 null 或无。这对我有用。 这才是真正的答案。它还解决了我在使用 .ResetText 时遇到的问题——然后,我无法再以编程方式重新加载选择。但是 .SelectedItem = null 可以解决问题。优秀!谢谢!【参考方案6】:
cboxHour.Items.Clear();

这行得通

【讨论】:

你能扩展你的答案吗?如果您可以为您的答案提供一些背景信息,那就太好了。【参考方案7】:

如果你已经将数据源应用到组合框,那么它不会被清除为cmb.Items.Clear()

为此,您必须将数据源null 分配给组合框。

cmb.DataSource = null;
cmb.Items.Clear();

【讨论】:

【参考方案8】:

如果您的组合框有值绑定部分。使用以下代码清除其值:

cboxHour.SetSelectedIndex(-1);

【讨论】:

【参考方案9】:

用途:

comboBox1.ResetText();

它已经完成了。

文档:ComboBox.ResetText 方法(命名空间:System.Windows.Forms) https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.combobox.resettext?view=netframework-4.8

【讨论】:

虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的答案添加解释并说明适用的限制和假设。【参考方案10】:

我的合作伙伴:

ComboBox.removeAllItems();

如果它读得不好,请删除所有项目。

【讨论】:

【参考方案11】:

Combo Box、DropDown 都具有相同的逻辑来清除/删除其中的所有项目,如下所示。

//For checkbox list
cblTest.Items.Clear();

//For drop down list
ddlTest.Items.Clear();

【讨论】:

【参考方案12】:
private void Resetbtn_Click(object sender, EventArgs e)
    
    comboBox1.Items.Clear(); // it will clear a combobox

    comboBox1.Items.Add("Student"); //then add combobox elements again. 
    comboBox1.Items.Add("Staff");

【讨论】:

【参考方案13】:

在WPF中你可以试试这段代码

cbHours.Items.Clear();

【讨论】:

【参考方案14】:

您可以尝试以下选项来清除 ComboBox 中的选定文本和所有项目。

comboBox1.SelectedIndex = -1;
comboBox1.Items.Clear();

【讨论】:

【参考方案15】:

当我添加ComboBox.Focus()时,这对我有用

ComboBox.Items.Clear();
ComboBox.ResetText();
ComboBox.Focus();

【讨论】:

【参考方案16】:

>它对我的工作:

    ComboCapacity.DataSource = null;
    ComboCapacity.Items.Clear();
    ComboCapacity.ResetText();
                    

【讨论】:

【参考方案17】:

我刚刚更改了组合框的文本,如下所示:

Combobox.Text = "Select...";

【讨论】:

这会更改文本部分中的内容,并且不会按要求清除组合框。您的回复假定“选择...”是那里的默认设置。你也不会说你做了之后是否解决了问题

以上是关于如何清除组合框?的主要内容,如果未能解决你的问题,请参考以下文章

单击保存按钮后如何在用户窗体中添加依赖于另一个组合框的excel vba组合框而不影响清除数据功能

EXTJS:如何在组合框上自动完成查询后从数据存储中清除“查询”参数

VBA-Excel如何清除组合框项目

每次使用 access vba 在第一个组合中选择值时,清除链接组合框中的值

ExtJS 组合框和过滤存储

从 material-ui 自动完成组合框中清除所有选定的值