Hallo Community,
meine Methode zeichnet jetzt alle Objekte wie gewünscht in das Panel, jedoch wenn ich die Methode noch mal aufrufe, wird es einfach übermalt. Wenn ich jetzt, bevor ich etwas zeichne, panel1.Invalidate(); ausführen lassen, sehe ich ab und zu kurz etwas aufblitzen, ansonsten bleibt das Panel aber leer.
Zudem hat meine Zeichen Methode am 200 Objekten (es sind nur Kreise) keine Wirkung mehr.
Ich habe mir noch einen Button eingefügt, mit dem ich "von Hand" panel1.Invalidate() auslösen kann, wenn ich es nicht beim Neuzeichnen mache. Das funktioniert auch, aber nur bis zu einer gewissen Anzahl von Objekten, danach passiert komischerweise nichts mehr.
Woran könnte das liegen?
Gibt es evtl. noch eine andere Vorgehensweise, wie man einfache Geometrische Objekte in WindowsForms anzeigen kann, außer mit GDI+?
Gruß,
MitgliedXYZ
Edit: Hier mal mein Code zum Neuzeichnen:
private void Aktualisierung()
{
for (int i = 1; i <= anzGewuenschteObjekte; i++)
{
ZeichneObject(objektX, objektY, i);
}
}
private void ZeichneObjekt(int x, int y, int number)
{
//Für den "Zoomfaktor" der Visualisierung
x = x / trackBar1.Value;
y = y / trackBar1.Value;
Pen p1 = new Pen(Color.Blue, 1);
panel1.CreateGraphics().DrawEllipse(p1, x, y, 1, 1);
p1.Color = Color.LightBlue;
if (cbKreise.Checked == true)
{
panel1.CreateGraphics().DrawEllipse(p1, x - (200 / trackBar1.Value), y - (200 / trackBar1.Value), 400 / trackBar1.Value, 400 / trackBar1.Value);
}
if (cbShowNR.Checked == true) //Wenn Nummern angezeigt werden sollen
{
panel1.CreateGraphics().DrawString(number.ToString(), new Font("Arial", 8.0f), new SolidBrush(Color.Blue), new PointF(x, y));
}
}
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »MitgliedXYZ« (16.02.2013, 12:22)