vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu übermalen 
Autor: Manfred X
Datum: 08.11.10 12:00

Hallo!

Vielleicht so etwas. Schnell mal hingeproggt ....

Durch Verwendung einer Liste und dauerndes Neuzeichnen
der Figur kannst Du einfach Punkte löschen und an
beliebiger Stelle hinzufügen.
Der Plan wird im Hintergrund angezeigt und nicht geändert.
Zum Schluss kannst Du die gesamte Zeichnung in die
Hintergrund-Bitmap übertragen.

Public Class frmPolygon
 
    Dim hbmp As Drawing.Bitmap
    Dim vbmp As Drawing.Bitmap
    Dim grp As Drawing.Graphics
    Dim myPoints As New Collections.Generic.List(Of Point)
 
    Private Sub frmPolygon_Load(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles MyBase.Load
 
        hbmp = New Bitmap("Pfad und Name der Hintergrund-Zeichnung")
        pbox.BackgroundImage = hbmp
        pbox.BackgroundImageLayout = ImageLayout.None
        vbmp = New Bitmap(hbmp.Width, hbmp.Height)
        grp = Graphics.FromImage(vbmp)
        grp.Clear(Color.Transparent)
        pbox.Image = vbmp
    End Sub
 
    Private Sub pbox_MouseDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.MouseEventArgs) Handles pbox.MouseDown
        myPoints.Add(New Point(e.X, e.Y))
        DrawFigure()
    End Sub
 
    Private Sub DrawFigure()
        grp.Clear(Color.Transparent)
        For i As Integer = 0 To myPoints.Count - 1
            grp.DrawEllipse(New Pen(Color.Red, 1), myPoints(i).X - 2, myPoints( _
              i).Y - 2, 4, 4)
            If i > 0 Then
                grp.DrawLine(New Pen(Color.Blue, 1), myPoints(i - 1), myPoints( _
                  i))
            End If
        Next i
        pbox.Invalidate() : pbox.Update()
    End Sub
 
    Private Sub pbox_MouseMove(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles pbox.MouseMove
        If myPoints.Count < 1 Then Exit Sub
        DrawFigure()
        Dim lp As Point = myPoints(myPoints.Count - 1)
        Dim mp As Point = New Point(e.X, e.Y)
        grp.DrawLine(New Pen(Color.Black, 1), lp, mp)
        pbox.Invalidate() : pbox.Update()
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu überm...4.849Ortech07.11.10 17:22
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.172keco07.11.10 23:13
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.120Ortech08.11.10 09:13
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.130Manfred X08.11.10 09:44
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.164Ortech08.11.10 11:14
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.218Manfred X08.11.10 12:00
Re: Zeichnen auf Picturebox ohne den Hintergrund (Bild) zu ü...4.105Ortech08.11.10 12:15
INVALIDATE und das UPDATE im Vgl. zu REFRESH4.102Ortech08.11.10 12:17
Re: INVALIDATE und das UPDATE im Vgl. zu REFRESH4.378Manfred X08.11.10 12:36

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-2024 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