DataGridView.RowPrePaint Ereignis

Definition

Tritt auf, bevor eine DataGridViewRow Gezeichnet wird.

public:
 event System::Windows::Forms::DataGridViewRowPrePaintEventHandler ^ RowPrePaint;
public event System.Windows.Forms.DataGridViewRowPrePaintEventHandler RowPrePaint;
public event System.Windows.Forms.DataGridViewRowPrePaintEventHandler? RowPrePaint;
member this.RowPrePaint : System.Windows.Forms.DataGridViewRowPrePaintEventHandler 
Public Custom Event RowPrePaint As DataGridViewRowPrePaintEventHandler 

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Handler für das RowPrePaint Ereignis zum Zeichnen eines Farbverlaufszeilenhintergrunds verwendet wird, wenn die Zeile ausgewählt ist. Dieses Beispiel ist Teil eines größeren Beispiels, das in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control verfügbar ist.

// Paints the custom selection background for selected rows.
void dataGridView1_RowPrePaint(object sender,
        DataGridViewRowPrePaintEventArgs e)
{
    // Do not automatically paint the focus rectangle.
    e.PaintParts &= ~DataGridViewPaintParts.Focus;

    // Determine whether the cell should be painted
    // with the custom selection background.
    if ((e.State & DataGridViewElementStates.Selected) ==
                DataGridViewElementStates.Selected)
    {
        // Calculate the bounds of the row.
        Rectangle rowBounds = new Rectangle(
            this.dataGridView1.RowHeadersWidth, e.RowBounds.Top,
            this.dataGridView1.Columns.GetColumnsWidth(
                DataGridViewElementStates.Visible) -
            this.dataGridView1.HorizontalScrollingOffset + 1,
            e.RowBounds.Height);

        // Paint the custom selection background.
        using (Brush backbrush =
            new System.Drawing.Drawing2D.LinearGradientBrush(rowBounds,
                this.dataGridView1.DefaultCellStyle.SelectionBackColor,
                e.InheritedRowStyle.ForeColor,
                System.Drawing.Drawing2D.LinearGradientMode.Horizontal))
        {
            e.Graphics.FillRectangle(backbrush, rowBounds);
        }
    }
}
' Paints the custom selection background for selected rows.
Sub dataGridView1_RowPrePaint(ByVal sender As Object, _
    ByVal e As DataGridViewRowPrePaintEventArgs) _
    Handles dataGridView1.RowPrePaint

    ' Do not automatically paint the focus rectangle.
    e.PaintParts = e.PaintParts And Not DataGridViewPaintParts.Focus

    ' Determine whether the cell should be painted with the 
    ' custom selection background.
    If (e.State And DataGridViewElementStates.Selected) = _
        DataGridViewElementStates.Selected Then

        ' Calculate the bounds of the row.
        Dim rowBounds As New Rectangle( _
            Me.dataGridView1.RowHeadersWidth, e.RowBounds.Top, _
            Me.dataGridView1.Columns.GetColumnsWidth( _
            DataGridViewElementStates.Visible) - _
            Me.dataGridView1.HorizontalScrollingOffset + 1, _
            e.RowBounds.Height)

        ' Paint the custom selection background.
        Dim backbrush As New _
            System.Drawing.Drawing2D.LinearGradientBrush(rowBounds, _
            Me.dataGridView1.DefaultCellStyle.SelectionBackColor, _
            e.InheritedRowStyle.ForeColor, _
            System.Drawing.Drawing2D.LinearGradientMode.Horizontal)
        Try
            e.Graphics.FillRectangle(backbrush, rowBounds)
        Finally
            backbrush.Dispose()
        End Try
    End If

End Sub

Hinweise

Sie können dieses Ereignis allein oder in Kombination mit dem RowPostPaint Ereignis behandeln, um die Darstellung von Zeilen im Steuerelement anzupassen. Sie können ganze Zeilen selbst zeichnen oder bestimmte Teile von Zeilen zeichnen und die folgenden Methoden der DataGridViewRowPrePaintEventArgs Klasse verwenden, um andere Teile zu zeichnen:

Sie können die VisualStyleRenderer Klasse auch verwenden, um Standardsteuerelemente mit dem aktuellen Design zu zeichnen. Weitere Informationen finden Sie unter Renderingsteuerelemente mit visuellen Formatvorlagen. Wenn Sie Visual Studio 2005 verwenden, haben Sie auch Zugriff auf eine große Bibliothek mit Standardbildern, die Sie mit dem Steuerelement DataGridView verwenden können.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln und Auslösen von Ereignissen.

Gilt für:

Weitere Informationen