How to Change Color of Individual Cell in Grid Control

ID: Q145610


The information in this article applies to:
  • Microsoft Visual Basic Standard, Professional, and Enterprise Editions, 16-bit and 32-bit, for Windows, version 4.0
  • Microsoft Visual Basic Standard and Professional Editions for Windows, version 3.0


SUMMARY

The Grid custom control does not allow different colors in individual cells. The example program below demonstrates how you can manipulate color of individual cells in the Grid custom control.


MORE INFORMATION

The example program shown below enables you to have different background colors for the cells of a grid. It also shows how to change the text color in individual cells. It uses the Picture property of the grid and an invisible picture box control.

Steps to Create Example Program

  1. Start Visual Basic or on the File menu, click New Project (ALT, F, N) if Visual Basic is already running. Form1 is created by default.


  2. On the File menu, click Add File. Then select the GRID.VBX file. The Grid tool appears in the Toolbox. (In the case of Visual Basic 4.0, on the Tools menu, click Custom Controls. Then check the Microsoft Grid Control under the available controls. Finally, click OK).


  3. Place a grid (Grid1), a picture box (Picture1) and 3 command buttons (Command1, Command2, Command3) on Form1. Set the Grid1 Cols and Rows properties both to 10. Then size the grid to show all the cells. Set the Picture1 AutoRedraw property to True and the Visible property to False. Make sure that the size of the Picture1 picture box is greater than that of the cell size of Grid1.


  4. Place the following functions in the general section of Form1:
    
        ' Enter the following on a single line.
        Sub SetGridCell (grd As Grid, RowNum%, ColNum%, BkClr&, FrClr&)
            grd.Row = RowNum%
            grd.Col = ColNum%
            Picture1.BackColor = BkClr
            Picture1.ForeColor = FrClr
            Picture1.CurrentX = 0: Picture1.CurrentY = 0
            Picture1.Print grd.Text
            grd.Picture = Picture1.Image
        End Sub
    
        Sub ClearGrid (grd As Grid)
            Dim i%, j%
            For i = 1 To grd.Rows - 1
                For j = 1 To grd.Cols - 1
                    grd.Row = i: Grid1.Col = j
                    grd.Picture = LoadPicture("")
                Next j
            Next i
        End Sub 


  5. Enter the following code in the Form_Load procedure:
    
       Sub Form_Load ()
            Dim i%, j%
            For i = 1 To Grid1.Rows - 1
                For j = 1 To Grid1.Cols - 1
                    Grid1.Row = i: Grid1.Col = j
                    ' Fill cell text so that "(i,j)" string is
                    ' assigned to the cell in ith row, jth column.
                    Grid1.Text = "(" & CStr(i) & "," & CStr(j) & ")"
                Next j
            Next i
       End Sub 


  6. Add the following code to the command button click event procedures:
    
       Sub Command1_Click ()
          Dim i%, j%
          For i = 1 To Grid1.Rows - 1
              For j = 1 To Grid1.Cols - 1
               Call SetGridCell(Grid1, i, j, QBColor(i-1), QBColor(15))
              Next j
          Next i
       End Sub
    
       Sub Command2_Click ()
          Dim i%, j%
          For i = 1 To Grid1.Rows - 1
              For j = 1 To Grid1.Cols - 1
              Call SetGridCell(Grid1, i, j, QBColor(15), QBColor(j-1))
              Next j
          Next i
       End Sub
    
       Sub Command3_Click ()
          Call ClearGrid(Grid1)
       End Sub 


  7. Press the F5 key to run the program. Click Command1 to see the cells in different rows appear in different colors. Click Command2 to see text in cells of different columns appear in different colors. Click Command3 to reset the grid display.


Additional query words: 3.00 4.00

Keywords : kbcode kbVBp400 PrgCtrlsCus VB4WIN
Version : 3.00 4.00 | 3.00 4.00
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: September 1, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.