DataGridViewRowPrePaintEventHandler Делегат

Определение

Представляет метод, обрабатывающий событие RowPrePaint объекта DataGridView.Represents the method that will handle the RowPrePaint event of a DataGridView.

public delegate void DataGridViewRowPrePaintEventHandler(System::Object ^ sender, DataGridViewRowPrePaintEventArgs ^ e);
public delegate void DataGridViewRowPrePaintEventHandler(object sender, DataGridViewRowPrePaintEventArgs e);
type DataGridViewRowPrePaintEventHandler = delegate of obj * DataGridViewRowPrePaintEventArgs -> unit
Public Delegate Sub DataGridViewRowPrePaintEventHandler(sender As Object, e As DataGridViewRowPrePaintEventArgs)

Параметры

sender
Object

Источник события.The source of the event.

e
DataGridViewRowPrePaintEventArgs

Объект DataGridViewRowPrePaintEventArgs, содержащий данные события.A DataGridViewRowPrePaintEventArgs that contains the event data.

Примеры

В следующем примере кода представлен DataGridViewRowPrePaintEventHandler делегат, который закрашивает фон строки градиента, если строка выбрана.The following code example presents a DataGridViewRowPrePaintEventHandler delegate that paints a gradient row background if the row is selected. Этот пример кода является частью большого примера, приведенного в разделе как настроить внешний вид строк в элементе управления Windows Forms DataGridView.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 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

Комментарии

При создании делегата DataGridViewRowPrePaintEventHandler необходимо указать метод, обрабатывающий событие.When you create a DataGridViewRowPrePaintEventHandler 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 Handling and Raising Events.

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.Gets an object that represents the method represented by the specified delegate.

Применяется к

См. также раздел