下面是我在mshflex中显示的一列值.双击标头自动按升序或降序排列.
下列是双击按降序排列,用"MSGrid.Sort =4" (数字降序排列),为什么最后两行02开头确要跑到最下面?存货编号
---------
010123011801
010123011801
010123011801
010123011801
010123011801
010112011902
010112011902
010112011401
010112011401
010112011401
010112011401
010112011401
010112011401
010112011401
010106010601
010106010601
010106010601
010106010601
010106010601
020201030601
020201030601

解决方案 »

  1.   

    说明Sort 属性总是排序整个行。要指定排序的范围,设置 Row 和 RowSel 属性。如果 Row 和 RowSel 相同,MSHFlexGrid 将排序所有不固定行。用于排序的关键字由 Col 和 ColSel 属性决定。排序总是在一个从左到右的方向上完成。例如,如果 Col =3 且 ColSel =1,排序根据列 1 的内容,然后是列 2 、列 3 的内容来进行。用于行比较的方法由 value 决定,如设置值中的解释。设置值 9 (自定义)最灵活,但比其它设置慢,典型地大约是 10 分之一,使用这一设置的另一种可能是创建一个不可见列,用关键字填充,然后使用另一设置执行一个基于自定义的排序。这对基于日期的排序是一个好方法。
      

  2.   

    Sort 属性
    常数 值 描述 
    flexSortNone 0 无。不执行排序。 
    flexSortGenericAscending 1 一般升序。执行估计文本不管是字符串或者是数值的升序排序。 
    flexSortGenericDescending 2 一般降序。执行估计文本不管是字符串或者是数值的降序排序。 
    flexSortNumericAscending 3 数值升序。执行把字符串变换为数值的升序排序。 
    flexSortNumericDescending 4 数值降序。执行把字符串变换为数值的降序排序。 
    flexSortStringNoCaseAsending 5 字符串升序。执行不区分大小写字符串比较的升序排序。 
    flexSortNoCaseDescending 6 字符串降序。执行不区分大小写字符串比较的降序排序。 
    flexSortStringAscending 7 字符串升序。执行区分大小写字符串比较的升序排序。 
    flexSortStringDescending 8 字符串降序。执行区分大小写字符串比较的降序排序。 
    flexSortCustom 9 自定义,使用 Compare 事件比较行。