Veröffentlicht 23. Dezember 200816 j Hallo, wie kann ich die Tag Property eines Image-s innerhalb von ImageList setzen? Egal was ich versuche, ist dieser Tag immer auf Null gesetzt. Danke, mm private void imgTester() { ImageList myList = new ImageList(); Image myImg = Image.FromFile("D:\\User\\20081219170022876.jpg"); myImg.Tag = "Hello World"; Console.WriteLine("myImg.Tag = '{0}'", myImg.Tag); // returns myImg.Tag = 'Hello World' myList.Images.Add(myImg); Console.WriteLine("Tag = '{0}'", myList.Images[myList.Images.Count - 1].Tag); // returns Tag = '' myList.Images[myList.Images.Count - 1].Tag = "Did you hear me?"; Console.WriteLine("Tag = '{0}'", myList.Images[myList.Images.Count - 1].Tag); // returns Tag = '' myList.Images[myList.Images.Count - 1].Tag = myImg.Tag; Console.WriteLine("Tag = '{0}'", myList.Images[myList.Images.Count - 1].Tag); // returns Tag = '' }
5. Januar 200916 j Hallo! Meines Achtens verlangt die Tag - Property ein Objekt, du weist der Eigenschaft jedoch ein String zu. Gruß, wos
6. Januar 200916 j Mhhhm... Stimmt. *Kopf kratz* Zudem kann man in die Tag - Eigenschaft sowieso irgendwie alles reinkippen. Dann eine Idee, woran's liegt, dass er quasi beim Hinzufügen zur Liste sein Tag "vergisst"? @ MickeyMiner: Verbirgt sich denn hinter "myList.Images[myList.Images.Count - 1].Tag" wirklich dein myImg oder hat das eventuell einen anderen Index?
6. Januar 200916 j Hast du dir mal die Liste bzw. die Images im Debugger angeschaut? Oder probier einfach mal myList.Images[myList.Images.Count - 1] in einer temporären Variable zu buffern. Verbirgt sich denn hinter "myList.Images[myList.Images.Count - 1].Tag" wirklich dein myImg oder hat das eventuell einen anderen Index? Erm... Leere Liste erstellt.Objekt A hinzugefügt.Letztes Objekt aus der Liste holen (A).TagTag des letzten Objekts(A) aus der Liste ändern.Letztes Objekt aus der Liste holen (A).Tag Ergo: Natürlich. Bearbeitet 6. Januar 200916 j von TDM
6. Januar 200916 j Laut diesem Snippet schon. Aber vllt. gibt es ja noch mehr Code in dem Programm, wo mit der Liste gearbeitet wird? Gab schließlich schon einige Fälle, wo Code gepostet wurde und der Fehler eigentlich ganz woanders lag... :schlaf:
6. Januar 200916 j Mhm... Habe es nun in sämtlichen Formen probiert - Objekte von eigenen Klassen reingekippt, Strings übergeben etc... Die Imagelist bzw. das Image - Objekt scheint beim Hinzufügen schlichtweg unter Alzheimer zu leiden. Bug?
6. Januar 200916 j Sorry, nochmal ich, aber Editierzeit war schon wieder abgelaufen. Hier ein paar alternative Lösungsvorschläge: Entweder eigene Klasse bauen mit entsprechender Tag - Property bauen oder Liste von Images nehmen. Ist zwar alles nicht besonders schön - gerade in Hinblick auf das komfortable Binden von Imagelisten an Controls, aber schöner geht's anscheinend nicht, wenn man auf die Tags nicht verzichten möchte. List<Image> ListeImg = new List<Image>(); Image imgBla= Image.FromFile("C:\\Eigene Dateien\\max_muster.jpg"); imgBla.Tag = "Kekse"; ListeImg .Add(imgBla); (ungetestet) Viel Erfolg und schöne Grüße. Bearbeitet 6. Januar 200916 j von words_of_silence Rechtschreibfehler korrigiert
6. Januar 200916 j hmm Hinweise Die zurückgegebene Bitmap ist eine Kopie des Originalbildes und sollte mithilfe der Image..::.Dispose-Methode zerstört werden. Also im Debugger konnt ich den Text nichtmal setzen - scheint so, also wäre das nur eine abgespeckte Liste, in der wirklich nur Bildinformationen stehen.
7. Januar 200916 j hmm ja sieht so aus... @MickeyMiner Was hast du denn genau vor, da gibts bestimmt andere gute Möglichkeiten
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.