DataGridViewAdvancedBorderStyle Class
Assembly: System.Windows.Forms (in system.windows.forms.dll)
The DataGridView control allows you to fully customize its appearance, including the borders of the cells and headers. The DataGridView has CellBorderStyle, ColumnHeadersBorderStyle, and RowHeadersBorderStyle properties that allow you to set the appearance of the cell border. However, if you need to further customize the borders, the DataGridViewAdvancedBorderStyle class allows you to set the style of the border on the individual sides of the cells. The Left, Right, Top, and Bottom properties of DataGridViewAdvancedBorderStyle represent the left, right, top, and bottom border of a cell, respectively. You can set these properties on the AdvancedCellBorderStyle, AdvancedColumnHeadersBorderStyle, AdvancedRowHeadersBorderStyle properties of the DataGridView to produce various appearances for the borders between the cells.
The following code example adjusts the cell borders of a DataGridView so that a double border separates the interior cells and the top left header cell from the row and column headers. This sample demonstrates how to override the AdjustColumnHeaderBorderStyle, AdjustRowHeaderBorderStyle, and AdjustCellBorderStyle methods, and the AdjustedTopLeftHeaderBorderStyle property. These members use DataGridViewAdvancedBorderStyle objects to modify individual cell borders.
Imports System Imports System.Drawing Imports System.Windows.Forms Namespace DataGridViewAdvancedBorderStyleSample Class Form1 Inherits Form <STAThreadAttribute()> _ Public Shared Sub Main() Application.EnableVisualStyles() Application.Run(New Form1()) End Sub Public Sub New() Me.AutoSize = True Me.Controls.Add(New CustomDataGridView()) Me.Text = "DataGridView advanced border styles demo" End Sub End Class Public Class CustomDataGridView Inherits DataGridView Public Sub New() With Me .RowTemplate = New DataGridViewCustomRow() .Columns.Add(New DataGridViewCustomColumn()) .Columns.Add(New DataGridViewCustomColumn()) .Columns.Add(New DataGridViewCustomColumn()) .RowCount = 4 .EnableHeadersVisualStyles = False .AutoSize = True End With End Sub Public Overrides ReadOnly Property AdjustedTopLeftHeaderBorderStyle() _ As DataGridViewAdvancedBorderStyle Get Dim newStyle As New DataGridViewAdvancedBorderStyle() With newStyle .Top = DataGridViewAdvancedCellBorderStyle.None .Left = DataGridViewAdvancedCellBorderStyle.None .Bottom = DataGridViewAdvancedCellBorderStyle.Outset .Right = DataGridViewAdvancedCellBorderStyle.OutsetDouble End With Return newStyle End Get End Property Public Overrides Function AdjustColumnHeaderBorderStyle( _ ByVal dataGridViewAdvancedBorderStyleInput As DataGridViewAdvancedBorderStyle, _ ByVal dataGridViewAdvancedBorderStylePlaceHolder As DataGridViewAdvancedBorderStyle, _ ByVal firstDisplayedColumn As Boolean, ByVal lastVisibleColumn As Boolean) _ As DataGridViewAdvancedBorderStyle ' Customize the left border of the first column header and the ' bottom border of all the column headers. Use the input style for ' all other borders. If firstDisplayedColumn Then dataGridViewAdvancedBorderStylePlaceHolder.Left = _ DataGridViewAdvancedCellBorderStyle.OutsetDouble Else dataGridViewAdvancedBorderStylePlaceHolder.Left = _ DataGridViewAdvancedCellBorderStyle.None End If With dataGridViewAdvancedBorderStylePlaceHolder .Bottom = DataGridViewAdvancedCellBorderStyle.Single .Right = dataGridViewAdvancedBorderStyleInput.Right .Top = dataGridViewAdvancedBorderStyleInput.Top End With Return dataGridViewAdvancedBorderStylePlaceHolder End Function End Class Public Class DataGridViewCustomColumn Inherits DataGridViewColumn Public Sub New() Me.CellTemplate = New DataGridViewCustomCell() End Sub End Class Public Class DataGridViewCustomCell Inherits DataGridViewTextBoxCell Public Overrides Function AdjustCellBorderStyle( _ ByVal dataGridViewAdvancedBorderStyleInput As DataGridViewAdvancedBorderStyle, _ ByVal dataGridViewAdvancedBorderStylePlaceHolder As DataGridViewAdvancedBorderStyle, _ ByVal singleVerticalBorderAdded As Boolean, _ ByVal singleHorizontalBorderAdded As Boolean, _ ByVal firstVisibleColumn As Boolean, _ ByVal firstVisibleRow As Boolean) As DataGridViewAdvancedBorderStyle ' Customize the top border of cells in the first row and the ' right border of cells in the first column. Use the input style ' for all other borders. If firstVisibleColumn Then dataGridViewAdvancedBorderStylePlaceHolder.Left = _ DataGridViewAdvancedCellBorderStyle.OutsetDouble Else dataGridViewAdvancedBorderStylePlaceHolder.Left = _ DataGridViewAdvancedCellBorderStyle.None End If If firstVisibleRow Then dataGridViewAdvancedBorderStylePlaceHolder.Top = _ DataGridViewAdvancedCellBorderStyle.InsetDouble Else dataGridViewAdvancedBorderStylePlaceHolder.Top = _ DataGridViewAdvancedCellBorderStyle.None End If With dataGridViewAdvancedBorderStylePlaceHolder .Right = dataGridViewAdvancedBorderStyleInput.Right .Bottom = dataGridViewAdvancedBorderStyleInput.Bottom End With Return dataGridViewAdvancedBorderStylePlaceHolder End Function End Class Public Class DataGridViewCustomRow Inherits DataGridViewRow Public Overrides Function AdjustRowHeaderBorderStyle( _ ByVal dataGridViewAdvancedBorderStyleInput As DataGridViewAdvancedBorderStyle, _ ByVal dataGridViewAdvancedBorderStylePlaceHolder As DataGridViewAdvancedBorderStyle, _ ByVal singleVerticalBorderAdded As Boolean, _ ByVal singleHorizontalBorderAdded As Boolean, _ ByVal isFirstDisplayedRow As Boolean, _ ByVal isLastDisplayedRow As Boolean) As DataGridViewAdvancedBorderStyle ' Customize the top border of the first row header and the ' right border of all the row headers. Use the input style for ' all other borders. If isFirstDisplayedRow Then dataGridViewAdvancedBorderStylePlaceHolder.Top = _ DataGridViewAdvancedCellBorderStyle.InsetDouble Else dataGridViewAdvancedBorderStylePlaceHolder.Top = _ DataGridViewAdvancedCellBorderStyle.None End If With dataGridViewAdvancedBorderStylePlaceHolder .Right = DataGridViewAdvancedCellBorderStyle.OutsetDouble .Left = dataGridViewAdvancedBorderStyleInput.Left .Bottom = dataGridViewAdvancedBorderStyleInput.Bottom End With Return dataGridViewAdvancedBorderStylePlaceHolder End Function End Class End Namespace
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Reference
DataGridViewAdvancedBorderStyle MembersSystem.Windows.Forms Namespace
DataGridView Class
DataGridView.CellBorderStyle Property
DataGridView.ColumnHeadersBorderStyle Property
DataGridView.RowHeadersBorderStyle Property
DataGridView.AdvancedCellBorderStyle Property
DataGridView.AdvancedColumnHeadersBorderStyle Property
DataGridView.AdvancedRowHeadersBorderStyle Property