【问题标题】:C# - is it possible to arrange ComboBox Items from a to z?C# - 是否可以从 a 到 z 排列组合框项目?
【发布时间】:2013-06-09 11:17:21
【问题描述】:

我在组合框中有一个非常凌乱的长项目,其中充满了字符串,如果将其从 a 到 z 排序以使其更容易跟踪,那就太好了。有可能吗?

【问题讨论】:

  • 您是使用对象(如数组或List<T>)作为组合框的.DataSource,还是手动填充.Items
  • 是的,ComboBox 本身的来源是一个字符串数组
  • 取决于您使用的 UI 技术。 WinForms ComboBoxes 有一个Sorted 属性。但你还没有告诉我们你在建造什么。表格? WPF? HTML?
  • 你试过了吗:ComponentModel:SortDescription?它在 WindowBase.dll

标签: c# arrays string combobox


【解决方案1】:

我可以想到两种可能的方法:

A) 使用 WinForms 组合框 Sorted 属性

如果你使用的是 WinForms,你可以使用ComboBox.Sorted = true;

B) 使用OrderBy 手动对列表进行排序

如果您的组合框中的数据来自列表形式,请使用OrderBy 到您要放入ComboBox 中的数据的List 在设置之前 .

这是一个例子:

var myList = new List<string>() {"q","w","e","r","t","y"};
var sorted = a.OrderBy(c => c).ToArray()
comboBox1.Items.AddRange(sorted);

【讨论】:

    【解决方案2】:

    原来我可以回答我自己的问题,在 Windows 8 C# 应用程序中,ComboBox 具有 Sort() 属性,可以简单地从 a 到 z 排列每个项目。谢谢。

    【讨论】:

      【解决方案3】:

      首先我没有像这样直接填充我的下拉组合框

      AppCombBox1.Items.Add(comboboxvalue);
      

      但是我用相同的数据填充了一个列表(在代码中循环完成,它正在通过 ini 文件搜索值):

      List<string> TempList = new List<string>();
      TempList.Add(comboboxvalue);
      

      填充列表后,我对其进行排序,然后用排序值填充下拉组合框。

          TempList.Sort();
          foreach (string ListValue in TempList)
          {
              AppCombBox1.Items.Add(ListValue);
          }
      

      【讨论】:

        【解决方案4】:

        只需设置Sorted Property to True。它将对元素进行排序。我正在从数据库中获取值,它工作正常。

        【讨论】:

          猜你喜欢
          • 2017-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-17
          • 1970-01-01
          • 1970-01-01
          • 2019-10-29
          相关资源
          最近更新 更多