Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DataGridView.CellPainting-Ereignis
Tritt ein, wenn eine Zelle gezeichnet werden muss.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Sie können dieses Ereignis behandeln, um die Darstellung von Zellen im Steuerelement anzupassen. Sie können gesamte Zellen oder nur bestimmte Teile von Zellen selbst zeichnen und die anderen Teile mit der DataGridViewCellPaintingEventArgs.PaintBackground-Methode oder der DataGridViewCellPaintingEventArgs.PaintContent-Methode zeichnen. Sie können auch die VisualStyleRenderer-Klasse zum Zeichnen von Standardsteuerelementen mit dem aktuellen Design verwenden. Weitere Informationen finden Sie unter Rendering von Steuerelementen mit visuellen Stilen. Wenn Sie Visual Studio 2005 verwenden, haben Sie außerdem Zugriff auf eine umfassende Bibliothek der Standardbilder, die Sie mit dem DataGridView-Steuerelement verwenden können.
Greifen Sie beim Behandeln dieses Ereignisses über die Parameter des Ereignishandlers auf die Zelle zu, nicht direkt auf die Zelle.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Im folgenden Codebeispiel wird die Verwendung dieses Ereignisses veranschaulicht, um die Darstellung aller Zellen in einer bestimmten Spalte anzupassen.
Dieses Beispiel ist Teil eines umfangreicheren in Gewusst wie: Anpassen der Darstellung von Zellen im DataGridView-Steuerelement von Windows Forms verfügbaren Beispiels.
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; } } } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.