DataGridView CellPainting funktioniert beim Scrollen nicht vollständig

Erster Beitrag, aber lange Zeit Browser :)

Hier ist mein Problem: Grundsätzlich habe ich eine Datagrid-Ansicht, mit der ich mit dem Benutzer interagiere. In allen Zeilen gibt es eine "Info" -Schaltfläche, die den Eindruck erweckt, dass eine weitere Zeile darunter mit allen zusammengeführten Zellen (eine lange Zelle über die gesamte Zeile) hinzugefügt und der Text und die Bilder gezeichnet werden, die die Zeile darüber beschreiben auf die "Info-Zelle".

Dies funktioniert hervorragend, es sei denn, die Datagrid-Ansicht wird vertikal gescrollt, dann wird das Bild anscheinend nicht aufgerufen und das Raster ist fehlerhaft. Irgendwelche Ideen?

Hier ist ein grundlegender Überblick über den Code:

private void grid_CellPainting(object sender, DataGridViewCellPaintingEventArgs e){     
    // Loop through and draw all of the open information rows
    foreach (int i in openInfoCells) {
        if (i >= grid.FirstDisplayedCell.RowIndex && 
            i <= (grid.DisplayedRowCount(true) + grid.FirstDisplayedCell.RowIndex)) {

            // Draw Rectangle
            ....

            // Draw Text or Image
            ....
        }
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage