This documentation is archived and is not being maintained.

DataGridViewRowPostPaintEventHandler Delegate

Represents the method that will handle the RowPostPaint event of a DataGridView.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

Public Delegate Sub DataGridViewRowPostPaintEventHandler ( _
	sender As Object, _
	e As DataGridViewRowPostPaintEventArgs _
Dim instance As New DataGridViewRowPostPaintEventHandler(AddressOf HandlerMethod)


Type: System.Object

The source of the event.

Type: System.Windows.Forms.DataGridViewRowPostPaintEventArgs

A DataGridViewRowPostPaintEventArgs that contains the event data.

When you create a DataGridViewRowPostPaintEventHandler delegate, you identify the method that will handle the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For more information about event-handler delegates, see Events and Delegates.

The following code example presents a DataGridViewRowPostPaintEventHandler delegate that paints textual content that spans the entire row below the normal cell values. This code example is part of a larger example provided in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control.

' Paints the content that spans multiple columns and the focus rectangle. 
Sub dataGridView1_RowPostPaint(ByVal sender As Object, _
    ByVal e As DataGridViewRowPostPaintEventArgs) _
    Handles dataGridView1.RowPostPaint

    ' 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)

    Dim forebrush As SolidBrush = Nothing 
        ' Determine the foreground color. 
        If (e.State And DataGridViewElementStates.Selected) = _
            DataGridViewElementStates.Selected Then

            forebrush = New SolidBrush(e.InheritedRowStyle.SelectionForeColor)
            forebrush = New SolidBrush(e.InheritedRowStyle.ForeColor)
        End If 

        ' Get the content that spans multiple columns. 
        Dim recipe As Object = _

        If (recipe IsNot Nothing) Then 
            Dim text As String = recipe.ToString()

            ' Calculate the bounds for the content that spans multiple  
            ' columns, adjusting for the horizontal scrolling position  
            ' and the current row height, and displaying only whole 
            ' lines of text. 
            Dim textArea As Rectangle = rowBounds
            textArea.X -= Me.dataGridView1.HorizontalScrollingOffset
            textArea.Width += Me.dataGridView1.HorizontalScrollingOffset
            textArea.Y += rowBounds.Height - e.InheritedRowStyle.Padding.Bottom
            textArea.Height -= rowBounds.Height - e.InheritedRowStyle.Padding.Bottom
            textArea.Height = (textArea.Height \ e.InheritedRowStyle.Font.Height) * _

            ' Calculate the portion of the text area that needs painting. 
            Dim clip As RectangleF = textArea
            clip.Width -= Me.dataGridView1.RowHeadersWidth + 1 - clip.X
            clip.X = Me.dataGridView1.RowHeadersWidth + 1
            Dim oldClip As RectangleF = e.Graphics.ClipBounds

            ' Draw the content that spans multiple columns.
            e.Graphics.DrawString(text, e.InheritedRowStyle.Font, forebrush, _

        End If 
    End Try 

    If Me.dataGridView1.CurrentCellAddress.Y = e.RowIndex Then 
        ' Paint the focus rectangle.
        e.DrawFocus(rowBounds, True)
    End If 

End Sub 'dataGridView1_RowPostPaint

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0