vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Picturebox mit Koordinaten ? 
Autor: ModeratorDaveS (Moderator)
Datum: 07.12.05 10:29

Obwohl du direkt zeichnen kannst, solltest du prinzipiell immer im Paint Event zeichnen. Paint Event wird ausgelöst wenn ein Fenster neu gezeichnet werden soll. Dass kann sein weil ein anderes Fenster dein Fenster gedeckt hat und weggezogen oder geschlossen wird, die Anwendung war minimiert und wird wieder aktiviert, oder unter anderen Umständen. Wenn du direkt zum Bildschirm zeichnest geht dann alles verloren. Deshalb was du zeichnen willst irgendwo merken und dann im Paint Event zeichnen. Oder du kannst auch in ein Bitmap zeichnen (als Puffer) und nur dein Bitmap im Paint Event zeichnen. Das ist aber etwas inflexibel wenn die Darstellung geändert werden kann. Dieser Code zeichnet jetzt ein Kreuz am Mauspunkt. Wird bei jedem Click am neuen Ort gezeichnet. Button1 zeichnet dann alle Punkte als Kreis, und Button2 setzt alles wieder zurück.
    Private points As New ArrayList
    Private draw As Boolean
    Private drawCross As Boolean
    Private cp As Point = New Point(-1, -1)
 
    Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
        Debug.WriteLine("Point: " & (New Point(e.X, e.Y)).ToString())
        Dim np As New Point(e.X, e.Y)
        points.Add(np)
        cp = np
        drawCross = True
        Me.Refresh()
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        draw = True
        drawCross = False
        Me.Refresh()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        points.Clear()
        draw = False
        drawCross = False
        Me.Refresh()
    End Sub
 
    Private Const csize As Integer = 5
 
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        If drawCross Then
            e.Graphics.DrawLine(Pens.Green, cp.X - csize, cp.Y, cp.X + csize, _
              cp.Y)
            e.Graphics.DrawLine(Pens.Green, cp.X, cp.Y - csize, cp.X, cp.Y + _
            csize)
        End If
        If draw Then
            For Each p As Point In points
                Debug.WriteLine("Draw: " & p.ToString())
                e.Graphics.DrawEllipse(Pens.Red, p.X - csize, p.Y - csize, _
                  csize * 2, csize * 2)
            Next
        End If
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Picturebox mit Koordinaten ?2.658Hannes H.07.12.05 08:23
Re: Picturebox mit Koordinaten ?2.127ModeratorDaveS07.12.05 09:03
Re: Picturebox mit Koordinaten ?1.906Hannes H.07.12.05 09:16
Re: Picturebox mit Koordinaten ?1.886ModeratorDaveS07.12.05 09:25
Re: Picturebox mit Koordinaten ?2.382Hannes H.07.12.05 09:44
Re: Picturebox mit Koordinaten ?2.104ModeratorDaveS07.12.05 10:29
Re: Picturebox mit Koordinaten ?1.927Hannes H.07.12.05 10:44
Re: Picturebox mit Koordinaten ?1.898ModeratorDaveS07.12.05 10:53
Re: Picturebox mit Koordinaten ?1.956Kay Pohlaris01.03.06 23:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel