Hallo,
einen konkreten Fehler kann ich hier nicht entdecken, jedoch könntest du noch einige Verbesserungen an deinem Programm vornehmen:
- anstatt der "static MainForm" verwende besser in TabManager eine Referenz (bzw. verwende ein Ereignis, so daß du gar nicht vom TabManager auf die MainForm direkt zugreifen mußt)
- wie schon oben geschrieben, in OnMouseDown/Move etc. die Basisklassenmethode aufrufen:
C#-Quelltext
1: 2: 3: 4: 5:
| protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); } |
- Invalidate() auch nur dann aufrufen, wenn es wirklich eine Änderung gibt, evtl. sogar über Invalidate(Rectangle) den Bereich einschränken (damit nicht immer alles neu gezeichnet werden muß)
- evtl. das Timer-Intervall erhöhen (denn 15ms sind ja eine FPS von 1000/15 = 66,7) - so schnell kann ein User die Änderungen sowieso nicht nachvollziehen (ok, bei meinem Spiel
FastDriver habe ich eine so hohe Aktualisierungsrate, aber da kommt es auch auf Geschwindigkeit an
Und wie viele Objekte zeichnest du denn in deiner Draw-Methode?
Du kannst dir auch mal meinen Artikel
Kommunikation von 2 Forms durchlesen.