DataGridView.RowPrePaint Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt ein, bevor eine DataGridViewRow gezeichnet wird.
public:
event System::Windows::Forms::DataGridViewRowPrePaintEventHandler ^ RowPrePaint;
public event System.Windows.Forms.DataGridViewRowPrePaintEventHandler RowPrePaint;
public event System.Windows.Forms.DataGridViewRowPrePaintEventHandler? RowPrePaint;
member this.RowPrePaint : System.Windows.Forms.DataGridViewRowPrePaintEventHandler
Public Custom Event RowPrePaint As DataGridViewRowPrePaintEventHandler
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie ein Handler für das RowPrePaint Ereignis verwendet wird, um einen Farbverlaufszeilenhintergrund zu zeichnen, wenn die Zeile ausgewählt ist. Dieses Beispiel ist Teil eines größeren Beispiels, das unter Vorgehensweise: Anpassen der Darstellung von Zeilen im Windows Forms DataGridView-Steuerelement verfügbar ist.
// 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
Hinweise
Sie können dieses Ereignis allein oder in Kombination mit dem RowPostPaint -Ereignis behandeln, um die Darstellung von Zeilen im Steuerelement anzupassen. Sie können ganze Zeilen selbst zeichnen oder bestimmte Teile von Zeilen zeichnen und die folgenden Methoden der DataGridViewRowPrePaintEventArgs -Klasse verwenden, um andere Teile zu zeichnen:
Sie können die VisualStyleRenderer -Klasse auch verwenden, um Standardsteuerelemente mit dem aktuellen Design zu zeichnen. Weitere Informationen finden Sie unter Rendering von Steuerelementen mit visuellen Stilen. Wenn Sie Visual Studio 2005 verwenden, haben Sie auch Zugriff auf eine große Bibliothek von Standardbildern, die Sie mit dem DataGridView -Steuerelement verwenden können.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.