Condividi tramite


DataGridViewCellPaintingEventArgs Classe

Definizione

Fornisce i dati per l'evento CellPainting.

public ref class DataGridViewCellPaintingEventArgs : System::ComponentModel::HandledEventArgs
public class DataGridViewCellPaintingEventArgs : System.ComponentModel.HandledEventArgs
type DataGridViewCellPaintingEventArgs = class
    inherit HandledEventArgs
Public Class DataGridViewCellPaintingEventArgs
Inherits HandledEventArgs
Ereditarietà
DataGridViewCellPaintingEventArgs

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di questo tipo. Per altre informazioni, vedere Procedura: Personalizzare l'aspetto delle celle nel controllo DataGridView Windows Forms.

private void dataGridView1_CellPainting(object sender,
System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
    if (this.dataGridView1.Columns["ContactName"].Index ==
        e.ColumnIndex && e.RowIndex >= 0)
    {
        Rectangle newRect = new Rectangle(e.CellBounds.X + 1,
            e.CellBounds.Y + 1, e.CellBounds.Width - 4,
            e.CellBounds.Height - 4);

        using (
            Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
            backColorBrush = new SolidBrush(e.CellStyle.BackColor))
        {
            using (Pen gridLinePen = new Pen(gridBrush))
            {
                // Erase the cell.
                e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

                // Draw the grid lines (only the right and bottom lines;
                // DataGridView takes care of the others).
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
                    e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom - 1);
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
                    e.CellBounds.Top, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom);

                // Draw the inset highlight box.
                e.Graphics.DrawRectangle(Pens.Blue, newRect);

                // Draw the text content of the cell, ignoring alignment.
                if (e.Value != null)
                {
                    e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                        Brushes.Crimson, e.CellBounds.X + 2,
                        e.CellBounds.Y + 2, StringFormat.GenericDefault);
                }
                e.Handled = true;
            }
        }
    }
}
Private Sub dataGridView1_CellPainting(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
    Handles dataGridView1.CellPainting

    If Me.dataGridView1.Columns("ContactName").Index = _
        e.ColumnIndex AndAlso e.RowIndex >= 0 Then

        Dim newRect As New Rectangle(e.CellBounds.X + 1, e.CellBounds.Y + 1, _
            e.CellBounds.Width - 4, e.CellBounds.Height - 4)
        Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
        Dim gridBrush As New SolidBrush(Me.dataGridView1.GridColor)
        Dim gridLinePen As New Pen(gridBrush)

        Try

            ' Erase the cell.
            e.Graphics.FillRectangle(backColorBrush, e.CellBounds)

            ' Draw the grid lines (only the right and bottom lines;
            ' DataGridView takes care of the others).
            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, _
                e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, _
                e.CellBounds.Bottom - 1)
            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1, _
                e.CellBounds.Top, e.CellBounds.Right - 1, _
                e.CellBounds.Bottom)

            ' Draw the inset highlight box.
            e.Graphics.DrawRectangle(Pens.Blue, newRect)

            ' Draw the text content of the cell, ignoring alignment.
            If (e.Value IsNot Nothing) Then
                e.Graphics.DrawString(CStr(e.Value), e.CellStyle.Font, _
                Brushes.Crimson, e.CellBounds.X + 2, e.CellBounds.Y + 2, _
                StringFormat.GenericDefault)
            End If
            e.Handled = True

        Finally
            gridLinePen.Dispose()
            gridBrush.Dispose()
            backColorBrush.Dispose()
        End Try

    End If

End Sub

Commenti

L'evento CellPainting viene generato per ogni DataGridViewCell oggetto visibile in un DataGridViewoggetto . Per migliorare le prestazioni, impostare le proprietà in un DataGridViewCellPaintingEventArgs per modificare l'aspetto della cella anziché accedere direttamente a una cella in DataGridView. Se si dipinge manualmente la cella, impostare la HandledEventArgs.Handled proprietà su true. Se non si imposta HandledEventArgs.Handled su true, la cella dipingerà le personalizzazioni.

Costruttori

DataGridViewCellPaintingEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, Int32, DataGridViewElementStates, Object, Object, String, DataGridViewCellStyle, DataGridViewAdvancedBorderStyle, DataGridViewPaintParts)

Inizializza una nuova istanza della classe DataGridViewCellPaintingEventArgs.

Proprietà

AdvancedBorderStyle

Ottiene lo stile del bordo del controllo DataGridViewCell corrente.

CellBounds

Ottiene i limiti del controllo DataGridViewCell corrente.

CellStyle

Ottiene lo stile della cella del controllo DataGridViewCell corrente.

ClipBounds

Ottiene l'area del controllo DataGridView da ridisegnare.

ColumnIndex

Ottiene l'indice della colonna del controllo DataGridViewCell corrente.

ErrorText

Ottiene una stringa che rappresenta un messaggio di errore per il controllo DataGridViewCell corrente.

FormattedValue

Ottiene il valore formattato del controllo DataGridViewCell corrente.

Graphics

Ottiene la struttura Graphics utilizzata per disegnare il controllo DataGridViewCell.

Handled

Ottiene o imposta un valore che indica se il gestore eventi ha gestito completamente l'evento o se il sistema deve proseguire la propria elaborazione.

(Ereditato da HandledEventArgs)
PaintParts

Parti della cella da disegnare.

RowIndex

Ottiene l'indice di riga del controllo DataGridViewCell corrente.

State

Ottiene lo stato del controllo DataGridViewCell corrente.

Value

Ottiene il valore del controllo DataGridViewCell corrente.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Paint(Rectangle, DataGridViewPaintParts)

Disegna le parti della cella specificate per l'area compresa nei limiti specificati.

PaintBackground(Rectangle, Boolean)

Disegna lo sfondo della cella per l'area compresa nei limiti specificati.

PaintContent(Rectangle)

Disegna il contenuto della cella per l'area compresa nei limiti specificati.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche