DataGridViewRowPostPaintEventArgs DataGridViewRowPostPaintEventArgs DataGridViewRowPostPaintEventArgs DataGridViewRowPostPaintEventArgs Class

Определение

Предоставляет данные для события RowPostPaint.Provides data for the RowPostPaint event.

public ref class DataGridViewRowPostPaintEventArgs : EventArgs
public class DataGridViewRowPostPaintEventArgs : EventArgs
type DataGridViewRowPostPaintEventArgs = class
    inherit EventArgs
Public Class DataGridViewRowPostPaintEventArgs
Inherits EventArgs
Наследование
DataGridViewRowPostPaintEventArgsDataGridViewRowPostPaintEventArgsDataGridViewRowPostPaintEventArgsDataGridViewRowPostPaintEventArgs

Примеры

В следующем примере кода показано, как обрабатывать RowPostPaint событие, чтобы сделать содержимое ячейки, охватывающие всю строку.The following code example demonstrates how to handle the RowPostPaint event to make the content of a cell span the entire row. Данный пример кода является частью большего примера, приведенного в как: Настройка внешнего вида строк элемента управления DataGridView в Windows Forms.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.
void dataGridView1_RowPostPaint(object sender,
    DataGridViewRowPostPaintEventArgs e)
{
    // 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);

    SolidBrush forebrush = null;
    try
    {
        // Determine the foreground color.
        if ((e.State & DataGridViewElementStates.Selected) ==
            DataGridViewElementStates.Selected)
        {
            forebrush = new SolidBrush(e.InheritedRowStyle.SelectionForeColor);
        }
        else
        {
            forebrush = new SolidBrush(e.InheritedRowStyle.ForeColor);
        }

        // Get the content that spans multiple columns.
        object recipe =
            this.dataGridView1.Rows.SharedRow(e.RowIndex).Cells[2].Value;

        if (recipe != null)
        {
            String text = 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.
            Rectangle textArea = rowBounds;
            textArea.X -= this.dataGridView1.HorizontalScrollingOffset;
            textArea.Width += this.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.
            RectangleF clip = textArea;
            clip.Width -= this.dataGridView1.RowHeadersWidth + 1 - clip.X;
            clip.X = this.dataGridView1.RowHeadersWidth + 1;
            RectangleF oldClip = 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);
        }
    }
    finally
    {
        forebrush.Dispose();
    }

    if (this.dataGridView1.CurrentCellAddress.Y == e.RowIndex)
    {
        // Paint the focus rectangle.
        e.DrawFocus(rowBounds, true);
    }
}
' 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

Комментарии

RowPostPaint Событие возникает после окрашивания строку на DataGridView элемента управления.The RowPostPaint event occurs after a row is painted on a DataGridView control. RowPostPaint можно вручную настроить внешний вид строки после рисования ячеек в строке.RowPostPaint allows you to manually adjust the appearance of the row after the cells in the row are painted. Это полезно, если вы хотите настроить строку.This is useful if you want to customize the row.

Конструкторы

DataGridViewRowPostPaintEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates, String, DataGridViewCellStyle, Boolean, Boolean) DataGridViewRowPostPaintEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates, String, DataGridViewCellStyle, Boolean, Boolean) DataGridViewRowPostPaintEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates, String, DataGridViewCellStyle, Boolean, Boolean) DataGridViewRowPostPaintEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates, String, DataGridViewCellStyle, Boolean, Boolean)

Инициализирует новый экземпляр класса DataGridViewRowPostPaintEventArgs.Initializes a new instance of the DataGridViewRowPostPaintEventArgs class.

Свойства

ClipBounds ClipBounds ClipBounds ClipBounds

Получает или задает область объекта DataGridView, который должен быть повторно закрашен.Gets or sets the area of the DataGridView that needs to be repainted.

ErrorText ErrorText ErrorText ErrorText

Получает строковое значение, которое представляет сообщение об ошибке для текущей ячейки DataGridViewRow.Gets a string that represents an error message for the current DataGridViewRow.

Graphics Graphics Graphics Graphics

Получает объект Graphics, используемый для закрашивания текущей ячейки DataGridViewRow.Gets the Graphics used to paint the current DataGridViewRow.

InheritedRowStyle InheritedRowStyle InheritedRowStyle InheritedRowStyle

Получает стиль ячейки, примененный к текущей строке DataGridViewRow.Gets the cell style applied to the current DataGridViewRow.

IsFirstDisplayedRow IsFirstDisplayedRow IsFirstDisplayedRow IsFirstDisplayedRow

Получает значение, указывающее, является ли текущая строка первой строкой, отображаемой в DataGridView.Gets a value indicating whether the current row is the first row displayed in the DataGridView.

IsLastVisibleRow IsLastVisibleRow IsLastVisibleRow IsLastVisibleRow

Получает значение, указывающее, является ли текущая строка последней видимой строкой в объекте DataGridView.Gets a value indicating whether the current row is the last visible row displayed in the DataGridView.

RowBounds RowBounds RowBounds RowBounds

Получает границы текущей ячейки DataGridViewRow.Get the bounds of the current DataGridViewRow.

RowIndex RowIndex RowIndex RowIndex

Получает индекс текущего объекта DataGridViewRow.Gets the index of the current DataGridViewRow.

State State State State

Получает состояние текущей ячейки DataGridViewRow.Gets the state of the current DataGridViewRow.

Методы

DrawFocus(Rectangle, Boolean) DrawFocus(Rectangle, Boolean) DrawFocus(Rectangle, Boolean) DrawFocus(Rectangle, Boolean)

Отрисовывает прямоугольник фокуса вокруг указанных границ.Draws the focus rectangle around the specified bounds.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
PaintCells(Rectangle, DataGridViewPaintParts) PaintCells(Rectangle, DataGridViewPaintParts) PaintCells(Rectangle, DataGridViewPaintParts) PaintCells(Rectangle, DataGridViewPaintParts)

Закрашивает указанные части ячейки для области в заданных границах.Paints the specified cell parts for the area in the specified bounds.

PaintCellsBackground(Rectangle, Boolean) PaintCellsBackground(Rectangle, Boolean) PaintCellsBackground(Rectangle, Boolean) PaintCellsBackground(Rectangle, Boolean)

Закрашивает фон ячейки для области в заданных границах.Paints the cell backgrounds for the area in the specified bounds.

PaintCellsContent(Rectangle) PaintCellsContent(Rectangle) PaintCellsContent(Rectangle) PaintCellsContent(Rectangle)

Закрашивает содержимое ячейки для области в заданных границах.Paints the cell contents for the area in the specified bounds.

PaintHeader(Boolean) PaintHeader(Boolean) PaintHeader(Boolean) PaintHeader(Boolean)

Закрашивает весь заголовок текущей строки DataGridViewRow.Paints the entire row header of the current DataGridViewRow.

PaintHeader(DataGridViewPaintParts) PaintHeader(DataGridViewPaintParts) PaintHeader(DataGridViewPaintParts) PaintHeader(DataGridViewPaintParts)

Закрашивает указанные части заголовка текущей строки.Paints the specified parts of the row header of the current row.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

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

Дополнительно