不过你可以写成一个过程:
Public Sub RowColor(fGrid As MSFlexGrid, ByVal Row As Integer, Optional ByVal BackColor As Long, Optional ByVal ForeColor As Long)
Dim oldRow As Integer, oldCol As Integer
Dim bkclr As Long, frclr As Long
Dim i As Integer
bkclr = fGrid.BackColor
frclr = fGrid.ForeColor
If BackColor Then bkclr = BackColor
If ForeColor Then bkclr = ForeColor
fGrid.Row = Row
For i = 0 To fGrid.Cols - 1
If i >= fGrid.FixedCols Then
fGrid.Col = i
fGrid.CellBackColor = bkclr
fGrid.CellForeColor = frclr
End If
Next i
fGrid.Col = oldCol
fGrid.Row = oldRow
fGrid.Redraw = True
fGrid.Refresh
End Sub
Private Sub Form_Load()
Me.MSHFlexGrid1.Rows = 10
Me.MSHFlexGrid1.Cols = 10
End Sub
Private Sub MSHFlexGrid1_Click()
Dim i As Integer
Dim j As Integer
Select Case Me.MSHFlexGrid1.Row
Case 1
For j = 1 To Me.MSHFlexGrid1.Cols - 1
Me.MSHFlexGrid1.Col = j
MSHFlexGrid1.CellBackColor = vbRed
Next
Case 2
For j = 1 To Me.MSHFlexGrid1.Cols - 1
Me.MSHFlexGrid1.Col = j
Me.MSHFlexGrid1.CellBackColor = vbGreen
Next
End Select