我在给数据添加记录时,进行MSFlexGrid.additem添加时,我想添加后进行排序,排序后能够把焦点指向新添加的那一行,并且那一行变兰,怎么实现,希望高手给解决一下,我想了好几天了,怎么得到MSFlexGrid的某一行焦点啊,不是MSFlexGrid.setfouces吧!

解决方案 »

  1.   

    提示一下就行了
    运行后,单击 MSHFlexGrid1 不同的行,看看有什么反应
    然后再单击 Command1 进行排序,再单击 MSHFlexGrid1 不同的行 ...Private Sub Command1_Click()
        With MSHFlexGrid1
            .Col = 2
            .ColSel = 2
            .Sort = flexSortGenericAscending
        End With
    End SubPrivate Sub Form_Load()
        Dim Val1
        Dim Val2
        Dim Val3
        Dim Val4
        With MSHFlexGrid1
            .SelectionMode = flexSelectionByRow
            .FixedRows = 0
            .FixedCols = 0
            .Rows = 0
            .Cols = 4
            For i = 0 To 5
                Randomize
                Val1 = Int(1000 * Rnd)
                Val2 = Int(1000 * Rnd)
                Val3 = Int(1000 * Rnd)
                Val4 = Int(1000 * Rnd)
                .AddItem Val1 & vbTab & Val2 & vbTab & Val3 & vbTab & Val4
                .RowData(i) = i
            Next
        End With
    End SubPrivate Sub MSHFlexGrid1_RowColChange()
        MsgBox MSHFlexGrid1.RowData(MSHFlexGrid1.Row)
    End SubColData 和 RowData 、BandData属性(MSHFlexGrid)
          这些属性返回或设置跟每个行和列相关联的一个任意的 long 类型的值。在设计时不可用。语法object.ColData(number) [=value]
    object.RowData(number) [=value]
    object.BandData(number) [=value]ColData、RowData 和 BandData 属性的语法有如下部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的对象。 
    number Long 类型值。在保存或者检索数据的 MSHFlexGrid 控件中的行号或者列号。 
    value Long 类型值。它指定 ColData 或者 RowData 数组的内容。 
    说明可以用 RowData 和 ColData 属性来使指定的数值跟 MSHFlexGrid 控件上的每一行或者列相关联,然后就可以在代码中使用这些数值来识别各项。例如,可以将包含总数的行添加到 MSHFlexGrid 中,并通过将它们的 RowData 属性设置为一个非 0 值来识别这些行。为了以后对这些总数进行更新,可以通过扫描 RowData 数组并删除相应的行来删除过时的总数。对 RowData 属性的另一个典型应用是将一个索引放到数据结构的数组中,这些数据结构跟在每一行上所描述的各项相关联。
      

  2.   

    你得有一个主键(不重复的项),新增时记住这个值,排序后在记录集中用find查这个值就可以了。
    你可以自己定义一个主键(设置成长整型数字),起动查询数据库得到这个值的最大值,每次新增时为这个键值加1。用这个主键来排序较容易一些。