VB.NET-Tipp 0129: Zeichnen auf eine PictureBox
von Dario
Beschreibung
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: | Framework-Version(en): .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 | .NET-Version(en): Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, Visual Basic 2010 | Download: |
' 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 diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.