技术开发 频道

使用MsFlexGrid控件的几个函数

  【IT168技术文档】在VB处理数据显示的时候,使用表格是一种好的方法,虽然DataGrid可以与数据源绑定,但是总有美中不足,就是外观不好看,所以有时应用MsFlexGrid显示数据还是一种比较好的方法,以下几个函数是用来控制MsFlexGrid的程序

  (本人语言表达能力有限,还请见谅)

  'MsFlexGrid操作函数

  '合并列

  Public Function MergeCol(GridObj As Object, ByVal StartCol As Long, ByVal EndCol As Long,
ByVal ColValue As String, ByVal CurrentRow As Long) As Boolean   If StartCol > EndCol Or StartCol > GridObj.Cols Or CurrentRow > GridObj.Rows Then   MsgBox "对不起,行列设置错误!", vbOKOnly, App.Title   MergeCol = False   Exit Function   End If   For I = StartCol To EndCol   GridObj.MergeCol(I) = True   GridObj.TextArray(faIndex(GridObj, CurrentRow, I)) = ColValue   GridObj.ColAlignment(I) = flexAlignCenterCenter   Next I   GridObj.MergeRow(CurrentRow) = True   MergeCol = True   End Function

  '合并行

  Public Function MergeRow(GridObj As Object, ByVal StartRow As Long, ByVal EndRow As Long, ByVal RowValue As String, ByVal CurrentCol As Long) As Boolean   If StartRow > EndRow Or StartRow > GridObj.Rows Or CurrentCol > GridObj.Cols Then   MsgBox "对不起,行列设置错误!", vbOKOnly, App.Title   MergeRow = False   Exit Function   End If   For I = StartRow To EndRow   GridObj.MergeRow(I) = True   GridObj.TextArray(faIndex(GridObj, I, CurrentCol)) = RowValue   GridObj.ColAlignment(CurrentCol) = flexAlignCenterCenter   Next I   GridObj.MergeCol(CurrentCol) = True   MergeRow = True   End Function

  '转换索引

  Public Function faIndex(GridObj As Object, ByVal row As Integer, ByVal col As Integer) As Long   If row > GridObj.Rows Or row < 0 Or col > GridObj.Cols Or col < 0 Then   MsgBox "对不起,行列设置错误!", vbOKOnly, App.Title   faIndex = -1   Exit Function   End If   faIndex = row * GridObj.Cols + col   End Function

  '插入行

  Public Function SetItem(GridObj As Object, ByVal row As Integer, ByVal col As Integer, ByVal SetValue As String) As Boolean   If row > GridObj.Rows Or row < 0 Or col > GridObj.Cols Or col < 0 Then   MsgBox "对不起,行列设置错误!", vbOKOnly, App.Title   SetItem = False   Exit Function   End If   GridObj.TextArray(faIndex(GridObj, row, col)) = SetValue   SetItem = True   End Function

  '得到单元格值

  Public Function GetItem(GridObj As Object, ByVal row As Integer, ByVal col As Integer) As String   If row > GridObj.Rows Or row < 0 Or col > GridObj.Cols Or col < 0 Then   MsgBox "对不起,行列设置错误!", vbOKOnly, App.Title   GetItem = ""   Exit Function   End If   GetItem = GridObj.TextArray(faIndex(GridObj, row, col))   End Function

  这是我以前写的几个函数,不知能不能帮上你, 我弄Excel时间挺长,有什么问题可以给我发E_mail

  w.hua@ynmail.com

0
相关文章