Ich versuche, das Zeichnen von DataGridViewRows in einer abgeleiteten DataGridView durch Überschreiben der OnRowPrePaint
-Methode vollständig zu steuern. Um den Ansatz zu testen, versuche ich, den Inhalt und den Hintergrund aller Zellen unter Verwendung der EventArgs
Farbmethoden, z. e.PaintCells()
oder e.PaintCellsBackground()
und dann EventArgs.Handled = true
einstellen, um zu verhindern, dass eine der anderen Malmethoden ausgelöst wird.Fehler beim Zeichnen von Zellen durch e.PaintCells() beim Überschreiben von DataGridViewRow.OnRowPrePaint
Mein Code so weit ist:
protected override void OnRowPrePaint(DataGridViewRowPrePaintEventArgs e)
{
using (SolidBrush brush = new SolidBrush(Color.Blue))
{
e.Graphics.FillRectangle(brush, e.RowBounds);
}
e.PaintCellsBackground(e.RowBounds, true);
e.PaintCells(e.RowBounds, e.PaintParts);
e.Handled = true;
}
ich dies erwartet die Zeile blau zu färben und dann die e.PaintCellsBackground()
und e.PaintCells()
Methoden, um die Zellen ontop dem blauen Hintergrund zu malen aber bin ich nur mit blauen Reihen vorgestellt mit nichts anderem gemalt. Die Bemerkungen auf der MSDN-Artikel auf PaintCellsBackground
liest
die PaintCellsBackground Methode verwenden, wenn Sie die DataGridViewRow ziehen und seine Zellen Inhalte selbst. Wenn Sie die gesamte Zeile und den Inhalt der Zellen manuell zeichnen, legen Sie die HandledEventArgs.Handled-Eigenschaft auf true fest. Wenn HandledEventArgs.Handled true ist, treten die Ereignisse CellPainting und RowPostPaint nicht auf.
Was führt mich dazu zu glauben, dass ich in der Lage sein sollte, zu tun, was ich hoffe?
Ich habe viel für meine Zelle Färbung mit row.Cells [n] .Style.BackColor, und row.DefaultCellStyle.BackColor .. etc – BugFinder
Es ist unklar, was Sie fragen. Bitte formulieren Sie die Frage neu und sagen Sie, was das Problem ist und was erwartet wird. Teilen Sie auch einen effektiveren Code, wenn ein Problem im Code vorliegt. –
danke für das Feedback @reza Ich habe meine Frage –