处于所有者绘制固定模式时的列表框排序问题



我有一个列表框,排序属性设置为 true。当绘制模式设置为正常时,它将按预期按字母顺序排序。但是,当我将绘制模式设置为 ownerdrawfix 以便我可以更改某些项目的颜色时,排序顺序就大不相同了。并不是说排序属性设置为 false(这将按添加到列表中的顺序列出项目(,但我还没有弄清楚它使用的顺序。用于更改颜色的 item 类只有 2 个属性:文本(字符串(和颜色...文本是第一个属性。每次我运行程序时,列表都是相同的,所以它不是随机的。但它绝对不是按字母顺序排列的。自从我在设计时设置排序属性以来,我没有代码要发布,代码中没有任何内容可以更改这一点。

我包含一个带有 4 个列表框的屏幕截图,它应该显示正在发生的事情。 排序问题

我已经搜索了列表框排序问题,只有 2 个帖子显示,这两个帖子都没有解决这个问题。

我已经找到了一个解决方法,但我认为这不应该是必要的,而且我认为不需要额外的处理和开销。 我尝试将数据输入到排序的、绘制模式正常的、不可见的列表框中,然后一次读取这 1 个项目并将其输入到非排序的绘制模式所有者绘制固定列表框中,以便我可以更改某些项目的颜色。虽然这确实有效,但如果要读取的项目非常多,它最终可能会减慢程序的速度。而且,我已经弄清楚了如果我首先使用排序的所有者绘制固定框,它会将它们放入什么顺序。它将前 2 个项目放在列表的底部,然后交替上自下......所以顺序是这样的。 3, 5, 7, 9, 10, 8, 6, 4, 2, 1.当我第一次尝试阅读排序的普通列表并将其输入排序的 ownerdrawfixed 列表以查看它与输入的顺序相关的位置时,我看到了这个。

最新更新