Hallo,
vor längerer Zeit hatte ich eine Anwendung erstellt, die mir anhand der Daten aus einer DB eine Art Laufzeitdiagramm zeichnet.
Was mich mittlerweile stört ist, dass das Zeichnen selbst zu lange dauert. Teilweise brauche ich mit allen Linien und dem drum herum ca. 6s. Ich gehe dabei aber auch 17.280 DB-Einträge, die an ein DGV gebunden sind durch.
Wie kann ich das beschleunigen? Ich nutze nur die Methode DrawLine.
PS: "Me.DoubleBuffered = True" habe ich bereits in der Form stehen.
*Topic verschoben*
vor längerer Zeit hatte ich eine Anwendung erstellt, die mir anhand der Daten aus einer DB eine Art Laufzeitdiagramm zeichnet.
Was mich mittlerweile stört ist, dass das Zeichnen selbst zu lange dauert. Teilweise brauche ich mit allen Linien und dem drum herum ca. 6s. Ich gehe dabei aber auch 17.280 DB-Einträge, die an ein DGV gebunden sind durch.
Wie kann ich das beschleunigen? Ich nutze nur die Methode DrawLine.
VB.NET-Quellcode
- Dim tr As Graphics = Form1.CreateGraphics 'steht unter den globalen Definitionen
- If DGV.Rows(i).Cells(1).Value = "1" Then
- tr.DrawLine(gruen, i - offset, y, i - offset, yr)
- act += 1
- Else
- If DGV.Rows(i).Cells(3).Value = "1" And DGV.Rows(i).Cells(7).Value = "1" Then
- tr.DrawLine(blau, i - offset, y, i - offset, yr)
- sett += 1
- ElseIf DGV.Rows(i).Cells(3).Value = "1" And DGV.Rows(i).Cells(7).Value = "0" Then
- tr.DrawLine(blau, i - offset, y, i - offset, yr)
- sett += 1
- ElseIf DGV.Rows(i).Cells(3).Value = "0" And DGV.Rows(i).Cells(7).Value = "1" Then
- tr.DrawLine(rot, i - offset, y, i - offset, yr)
- stoer += 1
- Else
- tr.DrawLine(grau, i - offset, y, i - offset, yr)
- leer += 1
- End If
- End If
PS: "Me.DoubleBuffered = True" habe ich bereits in der Form stehen.
*Topic verschoben*
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()