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 684 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv 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 Dieter Otter Alle Datumsangaben einer Datei ermitteln Eine Funktion, welche das Erstellungsdatum, das Datum des letzten Zugriffs und der letzten Speicherung einer Datei zurückgibt. Neu! sevCommand 4.0 ![]() Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||
|
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. |
|||||||||||||||||


Funktion zum Kennzeichnen von leeren DatagridView-Zellen


