PictureBoxen werden nicht gelöscht!

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    PictureBoxen werden nicht gelöscht!

    Ich lösche nach einer Kollision die PictureBox mit der kollidiert wird, nur werden nicht alle gelöscht manche bleiben einfach stehen.
    Hier der Code:

    Spoiler anzeigen

    C#-Quellcode

    1. if (Entinity.Tag == "Gegner Schwach")
    2. {
    3. TakeDamage(25);
    4. Entinity.Tag = "";
    5. Entinity.Visible = false;
    6. this.Controls.Remove(Entinity);
    7. Entinity.Dispose();
    8. Entinitys -= 1;
    9. EnemysIndex -= 1;
    10. }
    11. else if (Entinity.Tag == "Gegner Mittel")
    12. {
    13. TakeDamage(50);
    14. Entinity.Tag = "";
    15. Entinity.Visible = false;
    16. this.Controls.Remove(Entinity);
    17. Entinity.Dispose();
    18. Entinitys -= 1;
    19. EnemysIndex -= 1;
    20. }
    21. else if (Entinity.Tag == "Gegner Stark")
    22. {
    23. TakeDamage(75);
    24. Entinity.Tag = "";
    25. Entinity.Visible = false;
    26. this.Controls.Remove(Entinity);
    27. Entinity.Dispose();
    28. Entinitys -= 1;
    29. EnemysIndex -= 1;
    30. }
    31. else if (Entinity.Tag == "")
    32. {
    33. Entinity.Visible = false;
    34. this.Controls.Remove(Entinity);
    35. Entinity.Dispose();
    36. }



    (Das letzte else if (Entinity.Tag == "") war nur ein Versuch die, die nicht gelöscht wurden doch zu löschen)

    Habe auch schon this.Refresh(); probiert aber auch nichts. Hatte auch schon Dispose vor Controls.Remove. EnemysIndex ist nur damit der Generator weiß an welcher Stelle er generieren soll. Kann es vielleicht sein dass wenn ich 5 Gegner hab:

    AAAAA und ich dann eins Töte also etwa so: AAXAA setzt er den Index eins runter und dann denkt das Programm es sähe so aus: AAAAX. Ist es vielleicht so oder habe ich etwas ganz anderes Falsch? Vielen Dank im vorraus!

    Gruß,
    DragonSlayerMarc
    There are only 10 types of people in the world: Those who understand binary and those who don't.

    DragonSlayerMarc schrieb:

    else if (Entinity.Tag == "")
    Probier einfach mal

    C#-Quellcode

    1. else
    Ansonsten setz einen Haltepunkt in die Prozedur und steppe sie durch: Lerne zu Debuggen. Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Debuggen funzt alles!

    Ich bin auch ein Trottel es ist wie in meinem Start Post wenn ich von 1-5 Nummer 3 Töte erstellt er das Nächste auf 5. Deshalb wird ers auch nichtmehr gelöscht. Trotzdem danke für den Versuch @RodFromGermany

    Kann geschlossen werden.
    There are only 10 types of people in the world: Those who understand binary and those who don't.

    DragonSlayerMarc schrieb:

    Kann geschlossen werden.
    Das ist Dein Bier.
    Doppelklicke auf das kleine rote Quadrat oben neben dem Thread-Titel.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!