PictureBox zeigt Bild aus Resourcen mit best. Namen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von vb-programmer.

    PictureBox zeigt Bild aus Resourcen mit best. Namen

    Hallo!

    Hab da mal eine Frage:

    Ich habe eine PictureBox, diverse Bilder mit aussagekräftigem Namen in den Ressourcen und eine TextBox.
    In die TextBox soll man ein Wort eintragen. Und wenn in den Resourcen ein Bild existiert, welches in seinem Namen den textBoxinhalt hat, dann wird dieses Bild in PictureBox ausgegeben.

    Wie krieg ich das hin?

    vb-programmer schrieb:

    habt ihr mein Problem verstanden?
    Denke schon ...

    Ich vermute was Du suchst ist die ResourceManager.GetObject-Methode, so findest Du zum Beispiel mit

    VB.NET-Quellcode

    1. ' object myIcon in Resources suchen
    2. Dim obj As Object = My.Resources.ResourceManager.GetObject("myIcon")
    3. ' wenn existiert zu Icon wandeln
    4. dim icon as Icon
    5. if obj isNot Nothing then icon = DirectCast(obj,icon)

    das Icon mit dem Namen "myIcon" in den Resourcen
    hmm, ich kenne nur 1 Methode die Assembly-Resources (my.resources) durch zu laufen, und die ist nicht so simpel:

    VB.NET-Quellcode

    1. Imports System.Resources
    2. Imports System.Reflection
    3. ...
    4. ' get resourcemanager for my.resources
    5. Dim resManager As ResourceManager = My.Resources.ResourceManager
    6. ' get stream for assembly resources
    7. Dim resReader As New ResourceReader(Assembly.GetExecutingAssembly.GetManifestResourceStream(resManager.BaseName & ".resources"))
    8. ' get enumerator for resourcestream
    9. Dim id As IDictionaryEnumerator = resReader.GetEnumerator
    10. ' iterate through resources
    11. While id.MoveNext
    12. ' Id.Key enthält Namen, ID.Value die Werte der resourcen
    13. If TypeOf id.Value Is Bitmap Then Trace.Writeline(id.Key.ToString & " , " & id.Value.ToString)
    14. End While
    15. ' close stream
    16. resReader.Close()

    Wer also eine einfachere Möglichkeit kennt: nur zu ...