Export (0) Print
Expand All
Expand Minimize

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)

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

Parameters

sender
Type: System.Object

The source of the event.

e
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 
    Try 
        ' Determine the foreground color. 
        If (e.State And DataGridViewElementStates.Selected) = _
            DataGridViewElementStates.Selected Then

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

        ' Get the content that spans multiple columns. 
        Dim recipe As Object = _
            Me.dataGridView1.Rows.SharedRow(e.RowIndex).Cells(2).Value

        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) * _
                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
            e.Graphics.SetClip(clip)

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

            e.Graphics.SetClip(oldClip)
        End If 
    Finally
        forebrush.Dispose()
    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

Community Additions

ADD
Show:
© 2014 Microsoft