Export (0) Print
Expand All
Expand Minimize

DataGridViewCell.Paint Method

Paints the current DataGridViewCell.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

protected virtual void Paint(
	Graphics graphics,
	Rectangle clipBounds,
	Rectangle cellBounds,
	int rowIndex,
	DataGridViewElementStates cellState,
	Object value,
	Object formattedValue,
	string errorText,
	DataGridViewCellStyle cellStyle,
	DataGridViewAdvancedBorderStyle advancedBorderStyle,
	DataGridViewPaintParts paintParts


Type: System.Drawing.Graphics

The Graphics used to paint the DataGridViewCell.

Type: System.Drawing.Rectangle

A Rectangle that represents the area of the DataGridView that needs to be repainted.

Type: System.Drawing.Rectangle

A Rectangle that contains the bounds of the DataGridViewCell that is being painted.

Type: System.Int32

The row index of the cell that is being painted.

Type: System.Windows.Forms.DataGridViewElementStates

A bitwise combination of DataGridViewElementStates values that specifies the state of the cell.

Type: System.Object

The data of the DataGridViewCell that is being painted.

Type: System.Object

The formatted data of the DataGridViewCell that is being painted.

Type: System.String

An error message that is associated with the cell.

Type: System.Windows.Forms.DataGridViewCellStyle

A DataGridViewCellStyle that contains formatting and style information about the cell.

Type: System.Windows.Forms.DataGridViewAdvancedBorderStyle

A DataGridViewAdvancedBorderStyle that contains border styles for the cell that is being painted.

Type: System.Windows.Forms.DataGridViewPaintParts

A bitwise combination of the DataGridViewPaintParts values that specifies which parts of the cell need to be painted.

The following code example demonstrates how to override the Paint method of a DataGridViewButtonCell. This code example is part of a larger example provided in How to: Disable Buttons in a Button Column in the Windows Forms DataGridView Control.

protected override void Paint(Graphics graphics,
    Rectangle clipBounds, Rectangle cellBounds, int rowIndex,
    DataGridViewElementStates elementState, object value,
    object formattedValue, string errorText,
    DataGridViewCellStyle cellStyle,
    DataGridViewAdvancedBorderStyle advancedBorderStyle,
    DataGridViewPaintParts paintParts)
    // The button cell is disabled, so paint the border,   
    // background, and disabled button for the cell. 
    if (!this.enabledValue)
        // Draw the cell background, if specified. 
        if ((paintParts & DataGridViewPaintParts.Background) ==
            SolidBrush cellBackground =
                new SolidBrush(cellStyle.BackColor);
            graphics.FillRectangle(cellBackground, cellBounds);

        // Draw the cell borders, if specified. 
        if ((paintParts & DataGridViewPaintParts.Border) ==
            PaintBorder(graphics, clipBounds, cellBounds, cellStyle,

        // Calculate the area in which to draw the button.
        Rectangle buttonArea = cellBounds;
        Rectangle buttonAdjustment =
        buttonArea.X += buttonAdjustment.X;
        buttonArea.Y += buttonAdjustment.Y;
        buttonArea.Height -= buttonAdjustment.Height;
        buttonArea.Width -= buttonAdjustment.Width;

        // Draw the disabled button.                
        ButtonRenderer.DrawButton(graphics, buttonArea,

        // Draw the disabled button text.  
        if (this.FormattedValue is String) 
                buttonArea, SystemColors.GrayText);
        // The button cell is enabled, so let the base class  
        // handle the painting. 
        base.Paint(graphics, clipBounds, cellBounds, rowIndex,
            elementState, value, formattedValue, errorText,
            cellStyle, advancedBorderStyle, paintParts);

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft