DataGridViewCellPaintingEventHandler Delegát

Definice

Představuje metodu, která zpracuje CellPainting událost DataGridView .Represents the method that will handle the CellPainting event of a DataGridView.

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

Parametry

sender
Object

Zdroj událostiThe source of the event.

e
DataGridViewCellPaintingEventArgs

Obsahující DataGridViewCellPaintingEventArgs data události.A DataGridViewCellPaintingEventArgs that contains the event data.

Příklady

Následující příklad znázorňuje použití této události k přizpůsobení vzhledu všech buněk v konkrétním sloupci.The following example illustrates the use of this event to customize the appearance of all cells in a particular column.

Tento kód je součástí většího příkladu, který je k dispozici v tématu Postupy: přizpůsobení vzhledu buněk v ovládacím prvku DataGridView model Windows Forms.This code is part of a larger example available in How to: Customize the Appearance of Cells in the Windows Forms DataGridView Control.

private void dataGridView1_CellPainting(object sender,
System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
    if (this.dataGridView1.Columns["ContactName"].Index ==
        e.ColumnIndex && e.RowIndex >= 0)
    {
        Rectangle newRect = new Rectangle(e.CellBounds.X + 1,
            e.CellBounds.Y + 1, e.CellBounds.Width - 4,
            e.CellBounds.Height - 4);

        using (
            Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
            backColorBrush = new SolidBrush(e.CellStyle.BackColor))
        {
            using (Pen gridLinePen = new Pen(gridBrush))
            {
                // Erase the cell.
                e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

                // Draw the grid lines (only the right and bottom lines;
                // DataGridView takes care of the others).
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
                    e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom - 1);
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
                    e.CellBounds.Top, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom);

                // Draw the inset highlight box.
                e.Graphics.DrawRectangle(Pens.Blue, newRect);

                // Draw the text content of the cell, ignoring alignment.
                if (e.Value != null)
                {
                    e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                        Brushes.Crimson, e.CellBounds.X + 2,
                        e.CellBounds.Y + 2, StringFormat.GenericDefault);
                }
                e.Handled = true;
            }
        }
    }
}
Private Sub dataGridView1_CellPainting(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
    Handles dataGridView1.CellPainting

    If Me.dataGridView1.Columns("ContactName").Index = _
        e.ColumnIndex AndAlso e.RowIndex >= 0 Then

        Dim newRect As New Rectangle(e.CellBounds.X + 1, e.CellBounds.Y + 1, _
            e.CellBounds.Width - 4, e.CellBounds.Height - 4)
        Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
        Dim gridBrush As New SolidBrush(Me.dataGridView1.GridColor)
        Dim gridLinePen As New Pen(gridBrush)

        Try

            ' Erase the cell.
            e.Graphics.FillRectangle(backColorBrush, e.CellBounds)

            ' Draw the grid lines (only the right and bottom lines;
            ' DataGridView takes care of the others).
            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, _
                e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, _
                e.CellBounds.Bottom - 1)
            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1, _
                e.CellBounds.Top, e.CellBounds.Right - 1, _
                e.CellBounds.Bottom)

            ' Draw the inset highlight box.
            e.Graphics.DrawRectangle(Pens.Blue, newRect)

            ' Draw the text content of the cell, ignoring alignment.
            If (e.Value IsNot Nothing) Then
                e.Graphics.DrawString(CStr(e.Value), e.CellStyle.Font, _
                Brushes.Crimson, e.CellBounds.X + 2, e.CellBounds.Y + 2, _
                StringFormat.GenericDefault)
            End If
            e.Handled = True

        Finally
            gridLinePen.Dispose()
            gridBrush.Dispose()
            backColorBrush.Dispose()
        End Try

    End If

End Sub

Poznámky

Při vytváření DataGridViewCellPaintingEventHandler delegáta identifikujete metodu, která událost zpracuje.When you create a DataGridViewCellPaintingEventHandler delegate, you identify the method that will handle the event. Chcete-li přidružit událost k obslužné rutině události, přidejte do události instanci delegáta.To associate the event with your event handler, add an instance of the delegate to the event. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta.The event handler is called whenever the event occurs, unless you remove the delegate. Další informace o delegátech obslužných rutin událostí naleznete v tématu manipulace a vyvolávání událostí.For more information about event-handler delegates, see Handling and Raising Events.

Metody rozšíření

GetMethodInfo(Delegate)

Získává objekt, který představuje metodu reprezentovanou zadaným delegátem.Gets an object that represents the method represented by the specified delegate.

Platí pro

Viz také