Draw Rectangle auf Picturebox

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von dr. Nick.

    Draw Rectangle auf Picturebox

    Hallo zusammen.

    Ich würde gerne mit der Maus ein Rechteck in eine Picturebox zeichnen. Was in der Form an sich gut funktioniert, geht in der Picturebox nicht und ich kann mir nicht wirklich erklären warum


    VB.NET-Quellcode

    1. ​Public Class Form1
    2. Dim isMouseDown As Boolean
    3. Dim rect As Rectangle
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. PictureBox1.Image = My.Resources.testbild
    6. End Sub
    7. Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
    8. e.Graphics.DrawRectangle(Pens.Red, rect)
    9. End Sub
    10. Private Sub PictureBox1_MouseUp(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseUp
    11. isMouseDown = False
    12. Console.WriteLine("x2: " & e.X)
    13. Console.WriteLine("y2: " & e.Y)
    14. End Sub
    15. Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
    16. isMouseDown = True
    17. With rect
    18. .Location = e.Location
    19. .Width = 0
    20. .Height = 0
    21. End With
    22. Console.WriteLine("x1: " & e.X)
    23. Console.WriteLine("y1: " & e.Y)
    24. Invalidate()
    25. End Sub
    26. Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
    27. If isMouseDown Then
    28. With rect
    29. .Width = e.X - rect.X
    30. .Height = e.Y - rect.Y
    31. End With
    32. Invalidate()
    33. End If
    34. End Sub
    35. End Class



    Was könnte ich übersehen haben?

    BG

    dr. Nick schrieb:

    Was könnte ich übersehen haben?
    Auf welches Control wendest Du Invalidate() an?
    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!