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

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

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

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

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

【问题讨论】:

标签: c# winforms combobox


【解决方案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...";
                      

                      【讨论】:

                      • 这会更改文本部分中的内容,并且不会按要求清除组合框。您的回复假定“选择...”是那里的默认设置。你也不会说你做了之后是否解决了问题
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-02-06
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-01-28
                      • 2012-08-21
                      • 2012-09-23
                      相关资源
                      最近更新 更多