Klassen Methode mit .Net Tag Methode ersetzen

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

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von cry.baby.

    Klassen Methode mit .Net Tag Methode ersetzen

    Hallo zusammen,

    ich programmiere derzeit ein Memory-Game und verwende hierzu Buttons, denen ich über eine ImageList die jeweiligen Bilder (JPEG) zuweise. Jetzt müssen die Bilder natürlich umgedreht werden, bevor das Spiel losgeht. Um die Buttons mit den zugewiesenen Bildern zu pinnen/taggen, habe ich folgende Methode programmiert:

    C#-Quellcode

    1. public class PairTurn
    2. {
    3. public ImageList TaggedIcons = new ImageList();
    4. public void TagIcons(string Key, Image Jpeg)
    5. {
    6. TaggedIcons.ImageSize = new Size(110, 110);
    7. TaggedIcons.Images.Add(Key, Jpeg);
    8. }
    9. }


    Anschließend weise ich jedem Button über den Key der Methode das Bild zu, sobald der Button angeklickt wird:

    C#-Quellcode

    1. PairTurn clsPairTurn = new PairTurn();
    2. private void btn1_Click(object sender, EventArgs e)
    3. {
    4. btn1.BackgroundImage = clsPairTurn.TaggedIcons.Images["btn1"];
    5. }


    Die Methode funktioniert, allerdings gibt es doch eine eingebaute Tag Methode in .Net. Ich frage mich allerdings, wie ich sie für mehr als einen Button anwenden kann um mir den Umweg über eine selbstgestrickte Methode zu ersparen. Würde mich sehr interessieren. Jemand eine Idee?
    @cry.baby Die .Tag-Property von Controls ist ein Object, dem Du was auch immer zuweisen kannst, z.B. auch irgendwelche anderen Instanzen, die Du bereits anderen Deiner Controls zugewiesen hast.
    Besser wäe es allerdings, wenn Du Dir eine separate Klasse MemoryCard erstellen würdest, erbend von PictureBox. Das Primärbild wäre dann das offene Bild, ein globales Bild für alle als verdecktes Bild und ein Flag, das eine vom andern zu unterscheiden.
    Location, Size usw. bringt die BaseClass mit.
    Feddich.
    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!