Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Image wird durch ein durchgestrichenes Bild "ersetzt"
User404
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

[gelöst] Image wird durch ein durchgestrichenes Bild "ersetzt"

beantworten | zitieren | melden

Hi Community!
Ich hoffe ich bin hier richtig

Ich arbeite derzeit an einem kleinem Tower Defense in C# (2D).
Bis jetzt ist eigt. alles gut gelaufen, aber jetzt wird mir das Panel, auf dem die Grafiken sind,
einfach durchgestrichen.

Ich verwende: Timer, Threads, DoubleBuffering = true, rufe über einen Timer canvas.Refresh() auf und hab generell viele Grafiken.

Wenn ich das Programm starte, kann ich ca. 10 Sekunden spielen bis das Bild (im Anhang) erscheint.
Von mir kommt das Bild sicher nicht. 8)

Hat jemand eine Idee was das sein könnte?
Wenn jmd. genaure Informationen braucht, bitte melden. Bin neu in diesem Forum.

Ich würde euch natürlich auch gerne die Fehlermeldung geben wie es in der FAQ steht, aber ich bekomm eben keine. Die Grafiken sind auf einmal halt einfach weg. ?(
Hab auch schon gegoogelt und die Suchfunktion benutzt, aber das Problem liegt ja auch am beschreiben vom Fehler.

Vielen Dank im Voraus und gute Nacht.

Btw. der Timer hat einen Intervall von 50 momentan, da es sonst nicht flüssig läuft
Attachments
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo User404,

Punkt 1: Du solltest nie direkt im Timer-Event zeichnen, sondern immer so, wie es in [Artikel] Zeichnen in Windows-Programmen beschrieben wird (wird in WPF analog sein).

Punkt 2: Wenn du mit Threads arbeitest, musst (auch) bei jedem (anderen) Zugriff aufs GUI [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke) beachten.

herbivore
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.111

beantworten | zitieren | melden

Ich glaube wenn beim Zeichnen im Paint Event eine Exception auftritt, kann auch dieses Kreuz entstehen. Die Exception wird dann nicht geworfen sondern intern vom Control gefangen.
Bau dir ums zeichnen ein try-catch und versuche darin rauszufinden was schief läuft.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.986

beantworten | zitieren | melden

Und die Exception wird eine CrossThreadException sein, die führt immer zu soetwas.
private Nachricht | Beiträge des Benutzers
User404
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

@herbivore
Vielen dank für den Tipp!
Werd ich gleich umschreiben ;)

@chilic & FZelle
Danke euch beiden!
Es war tatsächlich eine Exception beim Zeichnen. :)
Und weils so schön war hab ich auch noch nen Null-Pointer auf ein Image gehabt
das mir im weiteren Verlauf gleich nochmal das schöne Bild gegeben hat. :P

Problem gelöst! Danke für die schnellen Antworten, hätte nicht gedacht das es
ein so aktives Forum gibt :)
private Nachricht | Beiträge des Benutzers