根据上面讨论的过程来看,你需要的行号其实和业务数据无关,主要是为了便于查看数据,针对以上几种方法我提出以下几点看法:
1、上面提到的几种方法中,for循环的方法应该是代码最少、效率最好的实现,不会影响数据源的绑定
2、在数据源中直接添加行号的方法由于环境限制无法实现
在 VSFlexGrid 中还有一种方法可供参考,就是通过OwnerDraw来实现,OwnerDraw主要为了满足用户的自定义实现:
- Private Sub Form_Load()
-
- ' 设置表格的自画方法
- VSFlexGrid1.OwnerDraw = flexODContent
-
- ' 设置表格的行数
- VSFlexGrid1.Rows = 21
-
- End Sub
- Private Sub VSFlexGrid1_DrawCell(ByVal hDC As Long, ByVal Row As Long, ByVal Col As Long, ByVal Left As Long, ByVal Top As Long, ByVal Right As Long, ByVal Bottom As Long, Done As Boolean)
-
- If Row >= VSFlexGrid1.FixedRows And Col = 0 Then
- VSFlexGrid1.TextMatrix(Row, 0) = Row
- End If
-
- '达到最大行之后就不就行重画
- If Row = (VSFlexGrid1.Rows - 1) Then
- VSFlexGrid1.OwnerDraw = flexODNone
- End If
-
- End Sub
复制代码 |