Heute stellen wir Ihnen eine Klasse vor, mit der sich die Farbe des Bild-Pixels einer PictureBox, über dem sich der Mauszeiger befindet, zurückgeben lässt. Erstellen Sie hierzu ein neues Windows-Forms Projekt, platzieren auf die Form eine PictureBox und weisen dieser eine beliebige Bilddatei zu. Platzieren Sie jetzt noch zwei Label-Controls unterhalb der PictureBox (Label1 und Label2). Public Class Form1 ''' <summary> ''' Farbwert unter dem Mauszeiger ermitteln ''' </summary> Public Class GetColorFromPoint ''' <summary> ''' Funktion zur Ermittlung der Farbe unter dem Mauszeiger ''' </summary> ''' <param name="pb">Die PictureBox mit Bild/Grafik</param> ''' <returns>Den ermittelten Farbwert</returns> Public Shared Function GetColor(ByVal pb As System.Windows.Forms.PictureBox, _ ByVal e As System.Windows.Forms.MouseEventArgs, _ ByRef Position As Point) As Color ' Bitmap Objekt Dim hBitmap As Bitmap = Nothing ' Fehlerüberwachung einschalten Try ' Variable hBitmap initialisieren hBitmap = New Bitmap(1, 1) ' Nutzung der Grafikklasse Using g As Graphics = Graphics.FromImage(hBitmap) With g ' Transfer der benötigten Daten .CopyFromScreen(pb.PointToScreen(e.Location), New Point(0, 0), hBitmap.Size) ' Wert der Position des Mauszeigers an die Variable Position übergeben Position = e.Location() ' Übergabe an die Variable Color Dim Color As Color = hBitmap.GetPixel(0, 0) ' Rückgabe des ermittelten Farbwertes Return Color End With End Using Catch ex As Exception ' Eventuell auftretenden Fehler abfangen und ' Fehlermeldung ausgeben MessageBox.Show(ex.Message.ToString(), "Info") Finally ' Resourcen freigeben If hBitmap IsNot Nothing Then hBitmap.Dispose() End Try End Function End Class Private Sub PictureBox1_MouseMove(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove ' Fehlerüberwachung einschalten Try ' Positionsvariable deklarieren Dim p As Point = Nothing ' Benötigten Wert aus der Funktion GetColor holen Dim Color As Color = GetColorFromPoint.GetColor(PictureBox1, e, p) ' Farbwert zum Test an das Label als neue Hintergrundfarbe übergeben Label1.BackColor = Color ' Positionsvariable auswerten Label2.Text = "Position: " & p.X.ToString() & " - " & p.Y.ToString() Catch ex As Exception ' Eventuell auftretenden Fehler abfangen und ' Fehlermeldung ausgeben MessageBox.Show(ex.Message.ToString(), "Info") End Try End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Label1.AutoSize = False Label1.Width = 30 Label1.Height = 12 End Sub End Class Dieser Tipp wurde bereits 13.598 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
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. |