Kreisform auf Picturebox per mausklick

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Schlammy.

    Kreisform auf Picturebox per mausklick

    Hallo leute ich möchte eine Markierung auf einer Karte einfügen
    Also

    Ich will eine Picturebox und drin geladen ist die Karte und wenn man irgendwo auf der Karte hinklickt erscheint eine Kreisförmige Markierung an der stelle wo man geklickt hat

    Außerdem soll die Markierung dann gespeichert und beim starten wieder geladen werden und man sollte des punkt zurücksetzen können

    Nur leider hab ich keine ahnung wie ich des anstellen soll und bitte euch um hilfe

    Mfg Dennis
    Willkommen im Forum. :thumbup:
    Nutze das MouseDown-Event der PictureBox, im e-Parameter bekommst Du die Koordinaten geliefert: e.X, e.Y.
    Möchtest Du genau einen Punkt (x, y) speichern oder können es auch mehrere werden?
    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!
    Danke :D

    Und ich bin neu bei Vb2008 weswegen ist nicht weiß was das Mousedown event ist und wie ich es anstelle das es in der Pictures box erscheint

    Ahso und es soll pro Pictures box nur ein punkt gespeichert werden

    Insgesamt sind es 5 Pictureboxen
    Dann fangen wir ganz langsam an.

    VB.NET-Quellcode

    1. Private Sub PictureBox1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
    2. MessageBox.Show(e.X.ToString & " " & e.Y.ToString)
    3. End Sub
    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!
    gut die zahlen die sich ändern nennt man auch Koordinaten. Dein Bildschrim hat eine auflösung und diese sind in Pixeln. Diese zwei zahlen sind auf welchem pixel ( breite x höhe ) sich der klick befand. Dieser ändert sich gerne beim nächsten klick da sich deine maus minimal auch verändert ( position )

    Wenn du die Koordinaten hast kannst du mit draw einen kreis machen.
    ohh hab jetzt garnicht daran gedacht das es die x und y koordinaten sind dachte es sind irgendwelche Zahlen


    Ich hätte gern das er die Koordinaten nimmt und da den Kreis macht und nicht einfach auf 100/100 Konstant sonder zb auf 54/59 beim nächsten klick wieder an der Position der Maus
    Private Sub PictureBox1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
    MessageBox.Show(e.X.ToString & " " & e.Y.ToString)
    End Sub
    Eigentlich dachten wir das erkennst du :D e.X = x e.Y = y

    Speichern brauchst du dann nur die coordinaten und beim neu laden abrufen :) Tabelle würde sich lohnen für alle coordinaten falls du mehrere machst

    PS: Viel spaß beim draw :)

    VB.NET-Quellcode

    1. Private _x As Integer
    2. Private _y As Integer
    3. Private Sub PictureBox1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
    4. _x = e.X
    5. _y = e.Y
    6. PictureBox1.Invalidate()
    7. End Sub
    8. Private Sub PictureBox1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    9. Dim r As Integer = 40
    10. e.Graphics.DrawEllipse(Pens.Black, New Rectangle(_x - r, _y - r, r + r, r + r))
    11. End Sub
    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!