Pixelfarbe von picturebox1 in picturebox2

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Pixelfarbe von picturebox1 in picturebox2

    Hi
    Ich hab 2 pictureboxen, in einer ist ein bild und in der anderen ist nichts.
    Wenn ich nun in der picbox1 herumfahre, soll in der picbox2 immer die farbe sein die da grad mit der maus angepointet wird.
    Das womit ichs grad probier:

    Quellcode

    1. Dim hover as Boolean = False
    2. Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
    3. hover = True
    4. End Sub
    5. Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
    6. hover = False
    7. End Sub
    8. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    9. Me.Text = MousePosition.X - Me.Location.X - 6 & " " & MousePosition.Y - Me.Location.Y - 29
    10. If hover = True Then
    11. Try
    12. Dim dd As New Bitmap(PictureBox1.Image)
    13. Dim MyColor As Color = dd.GetPixel(MousePosition.X - Me.Location.X - 6, MousePosition.Y - Me.Location.Y - 29)
    14. PictureBox2.BackColor = MyColor
    15. Catch ex As Exception
    16. End Try
    17. End If
    18. End Sub

    Danke und mfg
    Wer Rechtschreibfehler findet darf sie behalten :)
    Warum der Umweg mit dem Timer?
    Wenn du in der Picbox herumfährst, gibt dir die Picbox das Mousemove-Ereignis, und damit auch die Position. Das Getpixel hast du ja schon.

    Weitere Ratschläge:
    1. muss es immer Timer sein?
    2. NIEMALS ein Try-Catch-Zeugs setzen, wenn du die Ausnahme dann nicht weiterbehandelst.
    Bilder
    • Unbenannt.JPG

      36,33 kB, 871×361, 57 mal angesehen
    @joniator Mach das im MouseMove-Event und ggf. einem speziellen Enable-Flag.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!