我想改变DataGrid控件的背景颜色。但是不想整体都是用同一种颜色,而是随着数据的改变,来改变相应数据的颜色,但是控件中只有BACKCOLOR这个属性,请问大家,这应该如何处理?

解决方案 »

  1.   

    DataGrid不好处理
    MSFlexGrid或MSHFlexGrid容易做
      

  2.   

    MSFlexGrid这个也行,请问具体怎样操作呢?
      

  3.   

    Option ExplicitPrivate Sub Form_Load()    Me.MSHFlexGrid1.Rows = 4
        Me.MSHFlexGrid1.Cols = 3
        Me.MSHFlexGrid1.TextMatrix(0, 0) = "1"
        Me.MSHFlexGrid1.TextMatrix(0, 1) = "2"
        Me.MSHFlexGrid1.TextMatrix(0, 2) = "3"
        Me.MSHFlexGrid1.TextMatrix(1, 0) = "aaa"
        Me.MSHFlexGrid1.TextMatrix(1, 1) = "bbb"
        Me.MSHFlexGrid1.TextMatrix(1, 2) = "ccc"
        Me.MSHFlexGrid1.TextMatrix(2, 0) = "aaaa"
        Me.MSHFlexGrid1.TextMatrix(2, 1) = "bbbb"
        Me.MSHFlexGrid1.TextMatrix(2, 2) = "cccc"End SubPrivate Sub MSHFlexGrid1_Click()    Dim row As Integer
        Dim col As Integer
        Dim str As String
        col = Me.MSHFlexGrid1.col
        row = Me.MSHFlexGrid1.row
        
        If Me.MSHFlexGrid1.TextMatrix(row, col) = "bbbb" Then
            Me.MSHFlexGrid1.CellBackColor = vbRed'背景色
            Me.MSHFlexGrid1.CellForeColor = vbWhite'前景色
        End If
        
        If Me.MSHFlexGrid1.TextMatrix(row, col) = "aaa" Then
            Me.MSHFlexGrid1.CellBackColor = vbBlue
        End If
    ......
    End Sub
      

  4.   

    MSFlexGrid控件不能与ADO绑定,不过可以用循环来填充,如果你的数据比较多的话,用MSHFlexGrid控件吧,它可以与ADO进行绑定,绑定方法与DataGrid完全一样设置单元格的颜色的方法很简单,首先设置活动单元的坐标(用Row属性和Col属性来设置),然后设置 CellBackColor属性即可,比如:设置第3行,第3列的单元格背景色为绿色:
        With MSHFlexGrid1
            .Row = 2 '设置活动行为第3行
            .Col = 2 '设置活动列为第3列
            .CellBackColor = vbGreen  '设置活动单元(第3行,第3列)的背景色为绿色
        End With