Trotz was das Beispiel auf der ObjectListView Website sagt, es scheint, dass Sie wirklich und nicht falsch zurückgeben müssen.
Andere Beispiele, die ich gefunden habe, sind auch wahr.
Vergessen Sie auch nicht zu überprüfen, ob Ihr Objekt vor dem Rendern null ist, andernfalls wird eine Ausnahme ausgelöst!
this.olvInvoiceType.RendererDelegate = delegate (EventArgs re, Graphics g, Rectangle r, object rowObject)
{
var item = rowObject as MyItem;
if (item != null)
{
//g.FillRectangle(new SolidBrush(this.olvItems.BackColor), r);
g.DrawString(item.Name, olvItems.Font, brush, r);
}
return true;
};
Als ich versuchte, das ich schien das seltsame Problem zu haben, dass der Text zweimal gemacht wurde, nachdem die ursprünglich von der Steuerung in schwarz und dann von mir ein anderes Mal in rot!
Dies könnte ein Fehler sein, oder ich habe etwas verpasst.
Um dies zu umgehen dann musste ich den Hintergrund fillrectangele malen, aber dann haben Sie das Problem, wenn die Zeile ausgewählt ist, so dass Sie dies separat behandeln müssten.
Ich fand auch, dass OwnerDraw keinen Unterschied machte!
@IvanKishchenko Winforms. 'olvInvoiceType' ist der Standard' OLVColumn' –