【问题标题】:c# add a list of items to combobox ordered by string not naturalc#将项目列表添加到按字符串排序的组合框不是自然的
【发布时间】:2010-12-06 17:52:11
【问题描述】:

我使用此代码将数字添加到组合框

 for (int i = 15; i < 250; i++)
 {
   cbSumFrom.Items.Add(i);
 }

问题是我得到了类似的东西

100

101

......

但我想喜欢

15

16

17

......

如何解决?

【问题讨论】:

  • 是不是100、101...出现在15、16、17...之前?
  • 您已经按时间顺序添加值,这意味着您在组合上设置了排序顺序。从组合中删除排序,它应该正确显示。

标签: c# combobox natural-sort


【解决方案1】:

问题在于,组合框似乎正在对项目进行排序,并且它正在对每个字符进行 ASCII 比较以执行此操作,因此 100 在 15 之前,因为 10 在 15 之前。取消组合框的排序,它应该按照您的顺序列出它们;添加它们

【讨论】:

  • @Haim Yes see me answer update,应该是设置“Sorted = False”的简单案例。尝试做,让我知道是否可以解决它
【解决方案2】:

查看您的 ComboBox.Sorted 属性。如果它是True,那么你会得到你不想要的行为(默认,基于字符串的排序。)因为你是从一个看起来像预排序的列表中填充组合框,所以确保ComboBox.Sorted设置为False

【讨论】:

    【解决方案3】:

    试试这个...没有测试过但是试试这个...

     cbSumFrom.Items.Clear();
     for (int i = 15; i < 250;)
         {
           cbSumFrom.Items.Add(Convert.toString(i));
    
         }
    

    【讨论】:

    • 错误“System.Convert”不包含“toString”的定义
    • 并使用该组合框附加插入排序
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多