Condividi tramite


DataGridViewCell.Paint Metodo

Definizione

Disegna l'oggetto DataGridViewCell corrente.

protected:
 virtual void Paint(System::Drawing::Graphics ^ graphics, System::Drawing::Rectangle clipBounds, System::Drawing::Rectangle cellBounds, int rowIndex, System::Windows::Forms::DataGridViewElementStates cellState, System::Object ^ value, System::Object ^ formattedValue, System::String ^ errorText, System::Windows::Forms::DataGridViewCellStyle ^ cellStyle, System::Windows::Forms::DataGridViewAdvancedBorderStyle ^ advancedBorderStyle, System::Windows::Forms::DataGridViewPaintParts paintParts);
protected virtual void Paint (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, int rowIndex, System.Windows.Forms.DataGridViewElementStates cellState, object value, object formattedValue, string errorText, System.Windows.Forms.DataGridViewCellStyle cellStyle, System.Windows.Forms.DataGridViewAdvancedBorderStyle advancedBorderStyle, System.Windows.Forms.DataGridViewPaintParts paintParts);
abstract member Paint : System.Drawing.Graphics * System.Drawing.Rectangle * System.Drawing.Rectangle * int * System.Windows.Forms.DataGridViewElementStates * obj * obj * string * System.Windows.Forms.DataGridViewCellStyle * System.Windows.Forms.DataGridViewAdvancedBorderStyle * System.Windows.Forms.DataGridViewPaintParts -> unit
override this.Paint : System.Drawing.Graphics * System.Drawing.Rectangle * System.Drawing.Rectangle * int * System.Windows.Forms.DataGridViewElementStates * obj * obj * string * System.Windows.Forms.DataGridViewCellStyle * System.Windows.Forms.DataGridViewAdvancedBorderStyle * System.Windows.Forms.DataGridViewPaintParts -> unit
Protected Overridable Sub Paint (graphics As Graphics, clipBounds As Rectangle, cellBounds As Rectangle, rowIndex As Integer, cellState As DataGridViewElementStates, value As Object, formattedValue As Object, errorText As String, cellStyle As DataGridViewCellStyle, advancedBorderStyle As DataGridViewAdvancedBorderStyle, paintParts As DataGridViewPaintParts)

Parametri

graphics
Graphics

Oggetto Graphics usato per disegnare l'oggetto DataGridViewCell.

clipBounds
Rectangle

Oggetto Rectangle che rappresenta l'area dell'oggetto DataGridView da ridisegnare.

cellBounds
Rectangle

Oggetto Rectangle contenente i limiti dell'oggetto DataGridViewCell da disegnare.

rowIndex
Int32

Indice di riga della cella da disegnare.

cellState
DataGridViewElementStates

Combinazione bit per bit di valori DataGridViewElementStates che specifica lo stato della cella.

value
Object

Dati dell'oggetto DataGridViewCell da disegnare.

formattedValue
Object

Dati formattati dell'oggetto DataGridViewCell da disegnare.

errorText
String

Messaggio di errore associato alla cella.

cellStyle
DataGridViewCellStyle

Oggetto DataGridViewCellStyle contenente le informazioni di formattazione e stile relative alla cella.

advancedBorderStyle
DataGridViewAdvancedBorderStyle

Oggetto DataGridViewAdvancedBorderStyle contenente gli stili del bordo per la cella da disegnare.

paintParts
DataGridViewPaintParts

Combinazione bit per bit dei valori DataGridViewPaintParts che specifica quali parti della cella devono essere disegnate.

Esempio

Nell'esempio di codice seguente viene illustrato come eseguire l'override del Paint metodo di un oggetto DataGridViewButtonCell. Questo esempio di codice fa parte di un esempio più ampio fornito in Procedura: Disabilitare i pulsanti in una colonna Button nel controllo DataGridView Windows Forms.

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

Si applica a

Vedi anche