Diese Funktion wird im CellPainting-Ereignis angewandt. Es können mehrere Spalten des DGV für die Überprüfung und Kennzeichnung mit ihrem Spaltennamen vorgegeben werden. Hier die Funktion: ''' <summary> ''' Draw Diagonalen ins Rechteck der Datagridview-Zelle ''' </summary> ''' <param name="e">DataGridViewCellPaintingEventArgs</param> ''' <param name="theDGV">das DatagridView</param> ''' <param name="theColumns">die zu barbeitenden Spaltennamen</param> ''' <param name="bgColor">die Hintergrundfarbe</param> ''' <param name="art">Art Diagonalen: 1..von links oben nach rechts unten, ''' 2.. von rechts oben nach links unten, 3.. ein Kreuz</param> ''' <param name="PenColor">die Farbe der Linien</param> ''' <param name="PenSize">die Stärke der Linien</param> ''' <remarks>ColorNames kann auch nur eine Spalte sein</remarks> Public Sub drawingCellCross(e As DataGridViewCellPaintingEventArgs, theDGV As DataGridView, theColumns() As String, bgColor As Color, Optional art As Short = 2, Optional PenColor As Color = Nothing, Optional PenSize As Short = 1) Dim p As New Pen(PenColor, PenSize) Dim g As Graphics = e.Graphics, i As Short, aColumn As String For i = 0 To theColumns.Length - 1 aColumn = theColumns(i) If theDGV.Columns(aColumn).Index = e.ColumnIndex AndAlso e.RowIndex >= 0 _ AndAlso IsDBNull(e.Value) Then Dim rec As Rectangle = New Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width, e.CellBounds.Height) Using gridBrush As Brush = New SolidBrush(theDGV.GridColor), backColorBrush As Brush = New SolidBrush(bgColor) Using gridLinePen As Pen = New Pen(PenColor, PenSize) ' Erase the cell. e.Graphics.FillRectangle(backColorBrush, e.CellBounds) With g Select Case art Case 1 ' Diagonale zeichnen ' von links oben nach rechts unten .DrawLine(p, rec.X, rec.Y, rec.X + rec.Width, rec.Y + rec.Height) Case 2 ' oder: ' von rechts oben nach links unten .DrawLine(p, rec.X + rec.Width, rec.Y, rec.X, rec.Y + rec.Height) Case Else 'Kreuz ' von links oben nach rechts unten .DrawLine(p, rec.X, rec.Y, rec.X + rec.Width, rec.Y + rec.Height) ' von rechts oben nach links unten .DrawLine(p, rec.X + rec.Width, rec.Y, rec.X, rec.Y + rec.Height) End Select End With e.Handled = True End Using End Using End If Next End Sub Anwendungsbeispiel bei CellPainting: drawingCellCross(e, myDGV, {"Vorwahl", "Längengrad", "Breitengrad"}, Color.MistyRose, 3, Color.Red) Dieser Tipp wurde bereits 201 mal aufgerufen.
Anzeige
![]() ![]() ![]() 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. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
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. |