"Daumenkino" bei MouseHover-Ereignis, Aktivierung eines Bildes

  • VB.NET
  • .NET (Standard) 1.0–2.1

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von -Franky-.

    "Daumenkino" bei MouseHover-Ereignis, Aktivierung eines Bildes

    Hallo,
    Ich habe in meiner Anwendung eine PictureBox platziert. Dort soll ähnlich wie bei einem Daumenkino eine Reihe von Bildern übereinander nacheinander angezeigt werden, um somit darzustellen, in welcher Reihenfolge die Anwendung gewisse Vorgänge macht.

    Ich dachte zunächst, ich müsse 30 PictureBoxes übereinanderlegen und diese in der richtigen Reihenfolge sichtbar/unsichtbar machen.
    Dann habe ich aber bemerkt, daß ich alle 30 Bilder (in etwa Icon-Größe, 6KB, also nicht sehr groß) dieser einzelnen PictureBox1 zuweisen kann. Sie tauchen unter Anwendung.My.Resources aufgelistet auf.
    Jetzt fehlt mir nur noch der Befehl, um bei den Bildern die Sichtbarkeit umzuschalten. Irgendetwas wie "PictureBox1.Image.Activate=B01.PNG", Warte 0.5 Sekunden, "PictureBox1.Image.Activate=B02.PNG", Warte 0.5 Sekunden.....
    Gibt es das ? Oder muß ich doch die Lösung realisieren, die ich mir zuerst überlegt hatte ?

    vielen Dank für Eure Hilfe
    Wenn Du das unbedingt über die Ressourcen machen willst, erstellst Du Dir ein Bitmap-Array bzw eine List(Of Bitmap), in die alles Bilder in der gewünschten Reihenfolge reinkommen. Dann startest beim MouseHovern einen Timer, der beim Mausverlassen der PicBox deaktiviert wird. Beim Timer_Tick änderst Du das Bild in der PicBox, indem Du einen Index hochzählst und das passende Bild festlegst.
    Ggf. könnte das Ganze auch mit einer animierten GIF-Datei klappen, aber da weiß ich auf Anhieb nicht, wie Du die Zeiten einstellst und Du könntest ggf. nicht automatisch schnell mal Bilder austauschen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Ggf. könnte das Ganze auch mit einer animierten GIF-Datei klappen, aber da weiß ich auf Anhieb nicht, wie Du die Zeiten einstellst
    Die Zeiten (Delay) zwischen den Bildern in einer animierten GIF, stehen am Anfang eines jeden Bildes in einem "Control Block". Jetzt kommt es darauf an, mit welcher Methode man animierte GIFs abspielen möchte. Da gibt es ja den ImageAnimator. Ich glaube, der nimmt die Zeiten so wie diese im "ControlBlock" stehen und schaltet automatisch zum nächsten Frame. Man kann sich auch selbst jedes einzelne Frame aus der animierten GIF holen, ob man sich dann zusätzlich den Delay zum Frame holt mit dem man einen Timer füttert ist eine andere Geschichte, und die Frames per Timer anzeigen. Letzteres wäre aber das gleiche wie ein List/Array-Bitmap.
    Mfg -Franky-