DataGridView.RowPrePaint DataGridView.RowPrePaint DataGridView.RowPrePaint DataGridView.RowPrePaint Event

Definition

Tritt ein, bevor eine DataGridViewRow gezeichnet wirdOccurs before a DataGridViewRow is painted

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 

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Handler für das RowPrePaint -Ereignis verwendet wird, um einen Farbverlaufs Zeilen Hintergrund zu zeichnen, wenn die Zeile ausgewählt ist.The following code example demonstrates how to use a handler for the RowPrePaint event to paint a gradient row background if the row is selected. Dieses Beispiel ist Teil eines größeren Beispiels, das unter Vorgehensweise: Passen Sie die Darstellung von Zeilen im Windows Forms DataGridView-Steuerelement an.This example is part of a larger example available in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control.

// 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 'dataGridView1_RowPrePaint

Hinweise

Sie können dieses Ereignis allein oder in Kombination mit dem RowPostPaint -Ereignis behandeln, um die Darstellung der Zeilen im-Steuerelement anzupassen.You can handle this event alone or in combination with the RowPostPaint event to customize the appearance of rows in the control. Sie können ganze Zeilen selbst zeichnen oder bestimmte Teile der Zeilen zeichnen und die folgenden Methoden der DataGridViewRowPrePaintEventArgs -Klasse verwenden, um andere Teile zu zeichnen:You can paint entire rows yourself, or paint specific parts of rows and use the following methods of the DataGridViewRowPrePaintEventArgs class to paint other parts:

Sie können auch die VisualStyleRenderer -Klasse verwenden, um Standard Steuerelemente mit dem aktuellen Design zu zeichnen.You can also use the VisualStyleRenderer class to paint standard controls using the current theme. Weitere Informationen finden Sie unter Rendering von Steuerelementen mit visuellen Stilen.For more information, see Rendering Controls with Visual Styles. Wenn Sie verwenden Visual Studio 2005Visual Studio 2005, haben Sie auch Zugriff auf eine umfangreiche Bibliothek von Standardbildern, die Sie mit dem DataGridView -Steuerelement verwenden können.If you are using Visual Studio 2005Visual Studio 2005, you also have access to a large library of standard images that you can use with the DataGridView control.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch