DataGridViewCell.BorderWidths(DataGridViewAdvancedBorderStyle) Methode

Definition

Gibt ein Rectangle zurück, das die Breite aller Zellränder darstellt.

protected:
 virtual System::Drawing::Rectangle BorderWidths(System::Windows::Forms::DataGridViewAdvancedBorderStyle ^ advancedBorderStyle);
protected virtual System.Drawing.Rectangle BorderWidths (System.Windows.Forms.DataGridViewAdvancedBorderStyle advancedBorderStyle);
abstract member BorderWidths : System.Windows.Forms.DataGridViewAdvancedBorderStyle -> System.Drawing.Rectangle
override this.BorderWidths : System.Windows.Forms.DataGridViewAdvancedBorderStyle -> System.Drawing.Rectangle
Protected Overridable Function BorderWidths (advancedBorderStyle As DataGridViewAdvancedBorderStyle) As Rectangle

Parameter

advancedBorderStyle
DataGridViewAdvancedBorderStyle

Ein DataGridViewAdvancedBorderStyle, für den die Ränder berechnet werden sollen.

Gibt zurück

Ein Rectangle, das die Breite aller Zellränder darstellt.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die BorderWidths -Methode der DataGridViewCell -Klasse verwendet wird, um den verfügbaren Zeichnungsbereich in einer Zelle zu bestimmen. Dieses Codebeispiel ist Teil eines größeren Beispiels unter Vorgehensweise: Deaktivieren von Schaltflächen in einer Schaltflächenspalte im Windows Forms DataGridView-Steuerelements.

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);
    }
}
Protected Overrides Sub Paint(ByVal graphics As Graphics, _
    ByVal clipBounds As Rectangle, ByVal cellBounds As Rectangle, _
    ByVal rowIndex As Integer, _
    ByVal elementState As DataGridViewElementStates, _
    ByVal value As Object, ByVal formattedValue As Object, _
    ByVal errorText As String, _
    ByVal cellStyle As DataGridViewCellStyle, _
    ByVal advancedBorderStyle As DataGridViewAdvancedBorderStyle, _
    ByVal paintParts As DataGridViewPaintParts)

    ' The button cell is disabled, so paint the border,  
    ' background, and disabled button for the cell.
    If Not Me.enabledValue Then

        ' Draw the background of the cell, if specified.
        If (paintParts And DataGridViewPaintParts.Background) = _
            DataGridViewPaintParts.Background Then

            Dim cellBackground As New SolidBrush(cellStyle.BackColor)
            graphics.FillRectangle(cellBackground, cellBounds)
            cellBackground.Dispose()
        End If

        ' Draw the cell borders, if specified.
        If (paintParts And DataGridViewPaintParts.Border) = _
            DataGridViewPaintParts.Border Then

            PaintBorder(graphics, clipBounds, cellBounds, cellStyle, _
                advancedBorderStyle)
        End If

        ' Calculate the area in which to draw the button.
        Dim buttonArea As Rectangle = cellBounds
        Dim buttonAdjustment As Rectangle = _
            Me.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 TypeOf Me.FormattedValue Is String Then
            TextRenderer.DrawText(graphics, CStr(Me.FormattedValue), _
                Me.DataGridView.Font, buttonArea, SystemColors.GrayText)
        End If

    Else
        ' The button cell is enabled, so let the base class 
        ' handle the painting.
        MyBase.Paint(graphics, clipBounds, cellBounds, rowIndex, _
            elementState, value, formattedValue, errorText, _
            cellStyle, advancedBorderStyle, paintParts)
    End If
End Sub

Hinweise

Die Standardbreite des Zellenrahmens beträgt ein Pixel. Verwenden Sie die folgenden DataGridViewAdvancedCellBorderStyle Werte, um die Breite des Rahmens zu ändern:

Wenn die -Eigenschaft für die DividerHeight besitzende Zeile der Zelle festgelegt ist, wird die Höhe des Rechtecks um den Wert von DividerHeighterhöht. Wenn die DividerWidth -Eigenschaft für die besitzende Spalte der Zelle festgelegt ist, wird die Breite des Rechtecks um den Wert von DividerWidtherhöht.

Gilt für:

Weitere Informationen