Collapse the table of content
Expand the table of content
Expand Minimize

DataGridViewCell.BorderWidths Method

Returns a Rectangle that represents the widths of all the cell margins.

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

protected virtual Rectangle BorderWidths(
	DataGridViewAdvancedBorderStyle advancedBorderStyle
)

Parameters

advancedBorderStyle
Type: System.Windows.Forms.DataGridViewAdvancedBorderStyle

A DataGridViewAdvancedBorderStyle that the margins are to be calculated for.

Return Value

Type: System.Drawing.Rectangle
A Rectangle that represents the widths of all the cell margins.

The default width of the cell border is one pixel. Use the following DataGridViewAdvancedCellBorderStyle values to modify the width of the border:

In addition, if the DividerHeight property is set for the cell's owning row, the rectangle's height is increased by the value of DividerHeight. If the DividerWidth property is set for the cell's owning column, the rectangle's width will be increased by the value of DividerWidth.

The following code example demonstrates how to use the BorderWidths method of the DataGridViewCell class to determine the available drawing area in a cell. 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) ==
            DataGridViewPaintParts.Background)
        {
            SolidBrush cellBackground =
                new SolidBrush(cellStyle.BackColor);
            graphics.FillRectangle(cellBackground, cellBounds);
            cellBackground.Dispose();
        }

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

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

        // Draw the disabled button.                
        ButtonRenderer.DrawButton(graphics, buttonArea,
            PushButtonState.Disabled);

        // Draw the disabled button text.  
        if (this.FormattedValue is String) 
        {
            TextRenderer.DrawText(graphics,
                (string)this.FormattedValue,
                this.DataGridView.Font,
                buttonArea, SystemColors.GrayText);
        }
    }
    else
    {
        // 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.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft