Benutzer mit den meisten Antworten
Images als Array zur Laufzeit erstellen, dann Mouse-Ereignisse auslösen

Frage
-
Hallo an alle Helfer,
ich (Anfänger) habe folgenden Code erstellt:
Public Class Form1 Public myPB() As PictureBox Public zwpic As PictureBox Public j As Integer Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim slidebackground As New Color slidebackground = Color.Black j = 5 ReDim Preserve myPB(j) For i = 0 To j myPB(i) = New PictureBox myPB(i).Location = New Point((i + 1) * 20 + i * 100, 20) mypb(i).Size = New Size(100, 100) myPB(i).BackColor = slidebackground myPB(i).SizeMode = PictureBoxSizeMode.Zoom Me.Controls.Add(myPB(i)) Next myPB(0).Image = Image.FromFile("C:/users/Rainbow.jpg") myPB(1).Image = Image.FromFile("C:/users/Santana.jpg") myPB(2).Image = Image.FromFile("C:/users/Genesis.jpg") Me.PictureBox1.Image = myPB(0).Image End Sub Private Sub myPB_MouseEnter(sender As Object, e As System.EventArgs) Handles Button1.MouseEnter Me.PictureBox1.Image = myPB(1).Image End Sub
es wird ein eindimensionales PictureBox-Array (myPB) zur Laufzeit erstellt; momentan noch händisch werden 3 jpg Bilder dazugeladen.
Daneben gibt es noch eine große PictureBox1 sowie ein Button1;Mein Ziel: jedesmal wenn ich mit dem Mauszeiger über ein Bild im Array streiche (MouseEnter) soll das sich darin befindliche Bild in die große PictureBox geladen werden (und dann später mit MouseLeave (logischerweise) wieder daraus verschwinden).
Wenn ich mit der Maus auf den Button fahre, wird das getan, was ich möchte.
Wie muss der Mouse Ereignis-Handler aussehen, damit dies auch geschieht, wenn ich über eine PictureBox des Array streiche?
Ich hoffe, ich habe mein Problem verständlich formuliert.
Ich gehe davon aus, das dies ganz einfach ist, aber ich komme nicht drauf.
Vielen Dank im Voraus für jegliche Art von Hilfe.
Flieger
- Bearbeitet Flieger1990 Montag, 24. Dezember 2012 14:04
Antworten
-
Hallo, du kannst für jede PictureBox im Array MouseEnter abfangen:
'... AddHandler myPB(i).MouseEnter, AddressOf myPB_MouseEnter '... Private Sub myPB_MouseEnter(sender As Object, e As EventArgs) Me.PictureBox1.Image = DirectCast(sender, PictureBox).Image End Sub
und das Image der PictureBox im Array an die PictureBox in der Form weiter leiten. Für MouseLeave kannst du genauso vorgehen, nur das du dann der Image-Eigenschaft Nothing zuweisen musst.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Dienstag, 25. Dezember 2012 20:48
Alle Antworten
-
Hallo, du kannst für jede PictureBox im Array MouseEnter abfangen:
'... AddHandler myPB(i).MouseEnter, AddressOf myPB_MouseEnter '... Private Sub myPB_MouseEnter(sender As Object, e As EventArgs) Me.PictureBox1.Image = DirectCast(sender, PictureBox).Image End Sub
und das Image der PictureBox im Array an die PictureBox in der Form weiter leiten. Für MouseLeave kannst du genauso vorgehen, nur das du dann der Image-Eigenschaft Nothing zuweisen musst.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Dienstag, 25. Dezember 2012 20:48
-
Hallo ..
Ich habe das gleiche Problem gehabt.
habe eine Suchfunktion, in der alle gefundenen Einträge aus meiner Datenbank als Bild dargestellt werden.
Das habe ich mit Deinem Tipp für den anderen Kollegen dann soweit geschafft und bei der Erstellung der einzelnen Bilder entsprechend
AddHandler pic_SuchBild(i).Click, AddressOf pic_SuchBild_Click
hinzugefügt.
Wie genau kann ich aber abfragen, welches der Bilder ich angeklickt haben .. also welches i ?
Kannst Du mir da vielleicht auch einen Tip geben ?
Ich weiß, Deine ursprüngliche Antwort ist schon ein paar Tage her ;)
Liebe Grüße
Andre