Start / Tipps / VB.NET-Tipp 0129: Zeichnen auf eine PictureBox
 
Startseite Up-/Download Tutorials Club Das Team
Rubriken Foren Bücher Tips 'n Tricks Suche


VB.NET-Tipp 0129: Zeichnen auf eine PictureBox


Die einfachste Möglichkeit mittels .NET etwas zu zeichnen (beispielsweise auf eine PictureBox) ist das Paint-Event. Hier wird das entsprechende Bild jedoch bei jedem Zeichenvorgang neu generiert. Möchte man ein persistentes Bild darstellen, ist dafür ein sogenannter Backbuffer nötig, der beispielsweise in der .Image-Eigenschaft einer PictureBox untergebracht werden kann. Man kann diesen nun zu jedem Zeitpunkt bemalen und anzeigen lassen. Dieser Tipp zeigt den einfachen Routinecode für diese Aufgabe.

Schwierigkeitsgrad 1 .NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Compact Framework 1.0, .NET Compact Framework 2.0, .NET Framework 4 Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, Visual Basic 2010
Download des Beispielprojektes Download des Beispielprojektes [10,84 KB]
 
' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2008
' Option Strict:    An
' Option Explicit:  An
' Option Infer:     An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.Deployment
'  - System.Drawing
'  - System.Windows.Forms
'  - System.Xml
'  - System.Core
'  - System.Xml.Linq
'  - System.Data.DataSetExtensions
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Collections.Generic
'  - System.Data
'  - System.Drawing
'  - System.Diagnostics
'  - System.Windows.Forms
'  - System.Linq
'  - System.Xml.Linq
'

' ##############################################################################
' ################################# Form1.vb ###################################
' ##############################################################################
Public Class Form1

    ' Ausgabebild am Anfang mit gewünschter Größe erstellen
    Private Sub Form1_Load(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load

        picOut.Image = New Bitmap(picOut.Width, picOut.Height)
    End Sub

    ' Zeichenfläche löschen
    Private Sub Button1_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles cmdClear.Click

        ' Graphics-Objekt erstellen
        Using g = Graphics.FromImage(picOut.Image)
            g.Clear(Color.White)
        End Using

        ' Ergebnis anzeigen
        picOut.Invalidate()
    End Sub

    ' Kreis an Mausposition zeichnen
    Private Sub picOut_MouseDown(ByVal sender As Object, _
            ByVal e As System.Windows.Forms.MouseEventArgs) _
            Handles picOut.MouseDown

        ' Graphics-Objekt erstellen
        Using g = Graphics.FromImage(picOut.Image), Brush = _
                New SolidBrush(Color.FromArgb(180, Color.CornflowerBlue))

            g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            g.FillEllipse(Brush, e.Location.X - 10, e.Location.Y - 10, 20, 20)
        End Using

        ' Ergebnis anzeigen
        picOut.Invalidate()
    End Sub
End Class

Ihre Meinung

Falls Sie Fragen zu oder Erfahrungen mit diesem Tipp haben, dann sollten Sie diese hier posten. Für alles weitere melden Sie sich bitte in einem zum Thema passendem Forum.

Falls Sie in ihren Kommentar Quellcode einbinden wollen, verwenden Sie bitte Pseudotags: Quellcode Bei VB.NET wird durch ein vorangestelltes [dotnet] markiert und durch [/dotnet] abgeschlossen.

Ihr Name:   
Ihre E-Mailadresse:   
 
Bitte folgende Kontrollnummer eingeben: 405
Kontrolle:   
 
Ihre Frage/Ihr Kommentar:
Ja, ich möchte weitere Beiträge per E-Mail erhalten
Von ActiveVB-Notizservice am 01.01.2002 um 00:01
Bisher wurden noch keine Notizen zu dieser Seite gepostet.

Erstellt: 02.06.2010
Aktualisierung: 26.07.2010
  Autor: Dario
E-Mail: Tipps@ActiveVB.de



Copyright © 1998-2010 by ActiveVB
Alle Rechte vorbehalten.