PictureBox in Visual Basic 2010 Express

Dieser Thread ist Teil einer Diskussion zu einem Artikel:  Zum News-Artikel gehen

Fritz50

Stammgast
Die PictureBox in Visual Basic

Ich möchte eine Infotafel mit einem Bild oder einer Grafik und zugehöriger Legende programmieren. D.h. wenn ich in der Legende einen Begriff(Button) anklicke, soll im Bild daneben der zugehörige Punkt mit einer Markierung, vielleicht sogar blinkend, angezeigt werden.
Umgekehrt, wäre auch interessant, wenn beim Überstreichen/Antippen eines Bereichs eine PopUp-Information erscheinen würde.
Meine Fragen sind nun: Wie bestimme ich Cursorkoordinaten im Bild oder der Grafik, die in der PictureBox sind, und wie kann ich an einem definierten Punkt ein (blinkendes) Symbol erzeugen, das dann aber auch wieder verschwinden soll, wenn der Cursor die Legende verlässt? Geht das mit den Eigenschaften und Methoden der PictureBox?
(Bei meinen Versuchen wurden immer die Koordinaten des Bildschirms angegeben.
Kann/muss das Bild als Backgroundimage eingefügt werden?
Eine Weiterentwicklung wäre dann, wenn man in einer Rumtime-Version eine „neue“ Infotafel erstellen könnte, indem man das Bild austauscht und die Legende neu erstellt (gar mit variablen Bildgrössen und mehr oder weniger Legendenpunkten). Das würde ich unter einem Menupunkt probieren.

Oder gibt es so etwas schon?

Danke und Gruss

Fritz
 

nochEinAndreas

Stammgast
Hallo Fritz,

also ich kenne VB 2010 Express nicht. Ich vermute mal, das ist VB-NET, oder? Da kenne ich mich leider nicht aus.
Aber die PictureBox gibt es ja auch in VBA. Und hier gibt es z.B. das Image_MouseMove Ereignis. Hier kannst du die X-Y-Koordinaten der Maus abfragen. Wenn du vorher mal ausgemessen hast, innerhalb welcher Koordinaten-Bereiche was passieren soll, könntest du dann wie auch immer geartete Pop-Ups anzeigen lassen.
Den anderen Fall: Klicken in die Legende und dann einen Punkt im Bild blinken lassen, könnte man so lösen: Nimm einen Option-Button (ohne Label) und lege ihn an die richtige Position über das Bild. Beim Klick auf den Legenden-Eintrag rufst du eine Routine auf, die in gleichmäßigen Abständen die Visible-Eigenschaft des Buttons von True auf False und wieder zurückschaltet, in einer Schleife mit Zähler, so oft du es eben willst. Die Pause zwischen An und Aus kannst du mit dem Aufruf der Sleep-Funktion aus der Windows-API machen.
Falls das hilft (in VB.NET sieht ja vieles ganz anders aus) kannst du dich gerne wieder melden, wenn du mehr Details brauchst.

Gruß, Andreas
 
Oben