Dieser Tipp geht im Grundprinzip von der Vorgehensweise im Tipp für die Hintergrundgestaltung der ColumnHeader-Zellen aus. Die Funktion RowHeadersBG wird ebenfalls im CellPainting-Ereignis des DatagridView angewendet. Die Grundidee ist die Darstellung eines plastischen ('buttonartigen') Hintergrunds. Imports System.Drawing.Drawing2D ... ' Definieren der Farben für die RowHeader-Zelle Public colorBlendDGV As New ColorBlend Und bspw. dann konkret: Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' ColorBlend für ColumnHeaders der DatagridViews festlegen With colorBlendDGV .Colors = New Color() _ {Color.WhiteSmoke, Color.LightBlue, Color.LightBlue, Color.Gray} .Positions = New Single() {0.0, 0.22, 0.78, 1.0} End With End Sub (Man kann natürlich dieselbe Colordefinition benutzen, die man bei der eventuellen Anwendung der Gestaltung für die ColumnHeaders definiert hat.) Die Funktion: '' <summary> ''' Gradient als Hintergrund für RowHeaders ''' </summary> ''' <param name="theDGV">das DataGridView</param> ''' <param name="e">DataGridViewCellPaintingEventArgs</param> ''' <param name="colorBlend">Feld für die Gradientfarben</param> ''' <param name="angle">der Winkel für Gradient (90: horizontal)</param> ''' <param name="borderColor">die Farbe des Randes</param> ''' <remarks >im Cellpaint-Ereignis des DatagridView anwenden!</remarks> Public Sub RowHeadersBG(ByVal theDGV As DataGridView, _ ByVal e As DataGridViewCellPaintingEventArgs, _ ByVal colorBlend As ColorBlend, _ Optional ByVal angle As Single = 90, _ Optional ByVal borderColor As Color = Nothing) With e ' nur für Zeilen-Header ausführen If .ColumnIndex > 0 Then Exit Sub If theDGV.AllowUserToAddRows And .RowIndex = theDGV.RowCount - 1 Then Exit Sub ' das Rechteck der Zelle Dim rect As New Rectangle(.CellBounds.Left, .CellBounds.Top, _ .CellBounds.Width, .CellBounds.Height) ' den Brush initialisieren Dim cellBrush As New LinearGradientBrush(rect, Color.Red, Color.Blue, angle) cellBrush.GammaCorrection = True cellBrush.InterpolationColors = colorBlend ' die Hintergrund-Farben definieren .Graphics.FillRectangle(cellBrush, .CellBounds) ' den Rand der Zelle zeichnen Dim borderPen As New Pen(borderColor) If Not IsNothing(borderColor) Then Dim recBorder As New Rectangle(.CellBounds.X - 1, .CellBounds.Y, _ .CellBounds.Width, .CellBounds.Height - 1) .Graphics.DrawRectangle(borderPen, recBorder) End If .Handled = True cellBrush.Dispose() borderPen.Dispose() End With End Sub Und hier die Anwendung der Funktion im CellPaint-Ereignis des DGV: Private Sub DataGridView1_CellPainting(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _ Handles DataGridView1.CellPainting RowHeadersBG(DatagridView1, e, colorBlendDGV) End Sub Dieser Tipp wurde bereits 10.787 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. |
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! Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |