msflexgrid控件如何实现行背景颜色交替,试过N次,就是不行,还请高手指点!能给范例更好!
谢谢!

解决方案 »

  1.   

    请参考:Private Sub Form_Load()
        Dim i As Long, j As Integer
        With MSFlexGrid1
            .Rows = 10
            .Cols = 10
            For i = .FixedRows To .Rows - 1
                .Row = i
                If i / 2 = i \ 2 Then
                    For j = .FixedCols To .Cols - 1
                        .Col = j
                        .CellBackColor = vbBlue
                    Next
                Else
                    
                End If
            Next
        End With
    End Sub
      

  2.   

    Option ExplicitDim Judge As IntegerPrivate Sub Form_Load()
        Me.MSHFlexGrid1.Rows = 10
        Me.MSHFlexGrid1.Cols = 9
    End SubPrivate Sub MSHFlexGrid1_Click()
        Dim MSHrow As Integer
        Dim MSHcol As Integer
        
        Judge = Judge + 1
        If Judge Mod 2 = 0 Then
            MSHrow = Me.MSHFlexGrid1.Row
            For MSHcol = 1 To Me.MSHFlexGrid1.Cols - 1
                Me.MSHFlexGrid1.Row = MSHrow
                Me.MSHFlexGrid1.Col = MSHcol
                Me.MSHFlexGrid1.CellBackColor = vbRed
            Next
        Else
            MSHrow = Me.MSHFlexGrid1.Row
            For MSHcol = 1 To Me.MSHFlexGrid1.Cols - 1
                Me.MSHFlexGrid1.Row = MSHrow
                Me.MSHFlexGrid1.Col = MSHcol
                Me.MSHFlexGrid1.CellBackColor = vbBlue
            Next
        End If
    End Sub
      

  3.   

    'mshflex的背景色
    Sub SetGridColor(GRID As Control, row_col As Boolean, Color1 As Long, Color2 As Long)
      Dim i As Integer
      Dim j As Integer
      Dim k As Long
     
      GRID.Redraw = False
     
      GRID.BackColorBkg = &H808080
      GRID.BackColorFixed = &HC0C0C0
       If row_col Then
        For j = GRID.FixedRows To GRID.Rows - 1
         If k = Color2 Then
            'K = &HD0FFE0
            k = Color1
         Else
            k = Color2
         End If
     
         For i = GRID.FixedCols To GRID.Cols - 1
          GRID.Row = j: GRID.Col = i
          GRID.CellBackColor = k
          GRID.CellForeColor = &H80000008
         Next
        Next    GRID.Row = 0
        For i = 0 To GRID.Cols - 1
           GRID.Col = i
           GRID.CellAlignment = 4
        Next
        GRID.Redraw = True
     Else
    '*****
        For j = GRID.FixedCols To GRID.Cols - 1
         If k = Color2 Then
    '        K = &HD0FFE0
            k = Color1
            
         Else
            k = Color2
         End If
     
         For i = GRID.FixedRows To GRID.Rows - 1
          GRID.Col = j: GRID.Row = i
          GRID.CellBackColor = k
          GRID.CellForeColor = &H80000008
         Next
        Next    GRID.Col = 0
        For i = 0 To GRID.Rows - 1
             GRID.Row = i
             GRID.CellAlignment = 4
        Next
        GRID.Redraw = True
     End If
    End Sub
    然后在过程中调用Call SetGridColor(showinfo, True, &HD0FFE0, &HDFFFFF)
    showinfo指msflexgrid,