Option ExplicitDim lngOldRow As LongPrivate Sub Form_Load() Dim i As Long
MSFlexGrid1.Rows = 10: MSFlexGrid1.Cols = 5
For i = 1 To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(i, 1) = "aaaa" & i Next MSFlexGrid1.SelectionMode = flexSelectionByRow End SubPrivate Sub MSFlexGrid1_Click() MSFlexGrid1.Redraw = False Dim i As Long, lngNewRow As Long
lngNewRow = MSFlexGrid1.Row MSFlexGrid1.Row = lngOldRow For i = 1 To MSFlexGrid1.Cols - 1 MSFlexGrid1.Col = i MSFlexGrid1.CellBackColor = vbWhite Next
MSFlexGrid1.Row = lngNewRow For i = 1 To MSFlexGrid1.Cols - 1 MSFlexGrid1.Col = i MSFlexGrid1.CellBackColor = vbRed Next MSFlexGrid1.Redraw = True
lngOldRow = lngNewRow End Sub
to cuizm(射天狼)我的列數和行數多,MSFlexGrid1.CellBackColor = vbRed 表格的變化是能看的見的
to cuizm(射天狼) 十分謝謝!!!MSFlexGrid1.Redraw = False 可以使格子的變化看不到
为什么不用VSFlexGrid呢?
.col=2
.CellBackColor = &H8000000F
Dim i As Long
MSFlexGrid1.Rows = 10: MSFlexGrid1.Cols = 5
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 1) = "aaaa" & i
Next MSFlexGrid1.SelectionMode = flexSelectionByRow
End SubPrivate Sub MSFlexGrid1_Click()
MSFlexGrid1.Redraw = False
Dim i As Long, lngNewRow As Long
lngNewRow = MSFlexGrid1.Row
MSFlexGrid1.Row = lngOldRow
For i = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbWhite
Next
MSFlexGrid1.Row = lngNewRow
For i = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbRed
Next
MSFlexGrid1.Redraw = True
lngOldRow = lngNewRow
End Sub
表格的變化是能看的見的
十分謝謝!!!MSFlexGrid1.Redraw = False
可以使格子的變化看不到
http://expert.csdn.net/Expert/topic/2446/2446567.xml?temp=.2311823仔细看看,反过来用旧可以列颜色不同
'* 名称:FlexRedraw
'* 功能:表格的格式化
'* 用法:FlexRedraw(控件名)
'*********************************************************
Public Function FlexRedraw(F As MSHFlexGrid) As String
With F
.Redraw = False '禁止重画,防止闪动
.BackColorFixed = RGB(190, 218, 178) '标题行背景色
.Row = 0 '设置标题行文字的对其方式
.Col = 0
.ColSel = .Cols - 1
.CellForeColor = vbBlue '标题行文字颜色
.CellAlignment = 4 '对其方式为中间中间
.ScrollTrack = True '移动滚动条的同时数据也滚动
For I = .FixedRows To .Rows - 1 '单双行表格条纹背景色显示
.Row = I '选择第I行
.Col = .FixedCols
.ColSel = .Cols - 1
If I / 2 = Int(I / 2) Then '判断是单是双
.CellBackColor = RGB(224, 248, 224) '双行的底色
Else
.CellBackColor = RGB(240, 248, 224) '单行的底色
End If
Next I
.Row = 1
.Col = 1
.ColSel = .Cols - 1
.Redraw = True '允许重画,显示表格
End With
End Function
循环设置
.CellBackColor
.CellForeColor
两个属性
.col=列
.CellBackColor = 颜色