怎麼設置 MSHFlexGrid 每一行,每一列的顏色?

解决方案 »

  1.   

    微软的这个不好用
    为什么不用VSFlexGrid呢?
      

  2.   

    .row=2
    .col=2
    .CellBackColor = &H8000000F
      

  3.   

    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
      

  4.   

    to cuizm(射天狼)我的列數和行數多,MSFlexGrid1.CellBackColor = vbRed
    表格的變化是能看的見的
      

  5.   

    to cuizm(射天狼)
     十分謝謝!!!MSFlexGrid1.Redraw = False
    可以使格子的變化看不到
      

  6.   

    这是我以前回答过的
    http://expert.csdn.net/Expert/topic/2446/2446567.xml?temp=.2311823仔细看看,反过来用旧可以列颜色不同
      

  7.   

    '*********************************************************
    '* 名称: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
      

  8.   


    循环设置
    .CellBackColor 
    .CellForeColor 
    两个属性
      

  9.   

    .row=行
    .col=列
    .CellBackColor = 颜色