How to Change Color of Individual Cell in Grid Control

Last reviewed: March 18, 1997
Article ID: Q145610
3.00 4.00 | 3.00 4.00
WINDOWS   | WINDOWS NT
kbprg kbcode kbhowto

The information in this article applies to:

- Standard, Professional, and Enterprise Editions of Microsoft

  Visual Basic, 16-bit and 32-bit, for Windows, version 4.0

- Standard and Professional Editions of Microsoft Visual
  Basic 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.


KBCategory: kbprg kbcode kbkhowto
KBSubcategory: PrgCtrlsCus vb4win vb4all
Additional reference words: 3.00 4.00
Keywords : kbprg PrgCtrlsCus vb4all vb4win
Version : 3.00 4.00 | 3.00 4.00
Platform : WINDOWS
Issue type : kbhowto
Resolution Type : kbcode


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: March 18, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.