DataGridViewAdvancedBorderStyle (Clase)
Actualización: noviembre 2007
Contiene los estilos de borde para las celdas de un control DataGridView.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
El control DataGridView le permite personalizar totalmente su apariencia, incluso los bordes de las celdas y encabezados. El control DataGridView tiene las propiedades CellBorderStyle, ColumnHeadersBorderStyley RowHeadersBorderStyle que le permiten establecer la apariencia del borde de la celda. Sin embargo, si necesita personalizar más los bordes, la clase DataGridViewAdvancedBorderStyle le permite establecer el estilo del borde en los lados individuales de las celdas. Las propiedades Left, Right, Top y Bottom del control DataGridViewAdvancedBorderStyle representan el borde izquierdo, derecho, superior e inferior de una celda, respectivamente. Puede establecer estas propiedades en las propiedades AdvancedCellBorderStyle, AdvancedColumnHeadersBorderStyle y AdvancedRowHeadersBorderStyle del control DataGridView para generar las distintas apariencias de los bordes entre las celdas.
El ejemplo de código siguiente ajusta los bordes de la celda del control DataGridView de tal forma que un borde doble separe las celdas interiores y la celda del encabezado superior izquierda de los encabezados de fila y columna. Este ejemplo muestra cómo reemplazar los métodos AdjustColumnHeaderBorderStyle, AdjustRowHeaderBorderStyley AdjustCellBorderStyle y la propiedad AdjustedTopLeftHeaderBorderStyle. Estos miembros utilizan los objetos DataGridViewAdvancedBorderStyle para modificar bordes de celdas individuales.
using System; using System.Drawing; using System.Windows.Forms; namespace DataGridViewAdvancedBorderStyleSample { class Form1 : Form { [STAThreadAttribute()] public static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } public Form1() { this.AutoSize = true; this.Controls.Add(new CustomDataGridView()); this.Text = "DataGridView advanced border styles demo"; } } public class CustomDataGridView : DataGridView { public CustomDataGridView() { this.RowTemplate = new DataGridViewCustomRow(); this.Columns.Add(new DataGridViewCustomColumn()); this.Columns.Add(new DataGridViewCustomColumn()); this.Columns.Add(new DataGridViewCustomColumn()); this.RowCount = 4; this.EnableHeadersVisualStyles = false; this.AutoSize = true; } public override DataGridViewAdvancedBorderStyle AdjustedTopLeftHeaderBorderStyle { get { DataGridViewAdvancedBorderStyle newStyle = new DataGridViewAdvancedBorderStyle(); newStyle.Top = DataGridViewAdvancedCellBorderStyle.None; newStyle.Left = DataGridViewAdvancedCellBorderStyle.None; newStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Outset; newStyle.Right = DataGridViewAdvancedCellBorderStyle.OutsetDouble; return newStyle; } } public override DataGridViewAdvancedBorderStyle AdjustColumnHeaderBorderStyle( DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStyleInput, DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStylePlaceHolder, bool firstDisplayedColumn, bool lastVisibleColumn) { // 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. dataGridViewAdvancedBorderStylePlaceHolder.Left = firstDisplayedColumn ? DataGridViewAdvancedCellBorderStyle.OutsetDouble : DataGridViewAdvancedCellBorderStyle.None; dataGridViewAdvancedBorderStylePlaceHolder.Bottom = DataGridViewAdvancedCellBorderStyle.Single; dataGridViewAdvancedBorderStylePlaceHolder.Right = dataGridViewAdvancedBorderStyleInput.Right; dataGridViewAdvancedBorderStylePlaceHolder.Top = dataGridViewAdvancedBorderStyleInput.Top; return dataGridViewAdvancedBorderStylePlaceHolder; } } public class DataGridViewCustomColumn : DataGridViewColumn { public DataGridViewCustomColumn() { this.CellTemplate = new DataGridViewCustomCell(); } } public class DataGridViewCustomCell : DataGridViewTextBoxCell { public override DataGridViewAdvancedBorderStyle AdjustCellBorderStyle( DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStyleInput, DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStylePlaceHolder, bool singleVerticalBorderAdded, bool singleHorizontalBorderAdded, bool firstVisibleColumn, bool firstVisibleRow) { // 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. dataGridViewAdvancedBorderStylePlaceHolder.Left = firstVisibleColumn ? DataGridViewAdvancedCellBorderStyle.OutsetDouble : DataGridViewAdvancedCellBorderStyle.None; dataGridViewAdvancedBorderStylePlaceHolder.Top = firstVisibleRow ? DataGridViewAdvancedCellBorderStyle.InsetDouble : DataGridViewAdvancedCellBorderStyle.None; dataGridViewAdvancedBorderStylePlaceHolder.Right = dataGridViewAdvancedBorderStyleInput.Right; dataGridViewAdvancedBorderStylePlaceHolder.Bottom = dataGridViewAdvancedBorderStyleInput.Bottom; return dataGridViewAdvancedBorderStylePlaceHolder; } } public class DataGridViewCustomRow : DataGridViewRow { public override DataGridViewAdvancedBorderStyle AdjustRowHeaderBorderStyle( DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStyleInput, DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStylePlaceHolder, bool singleVerticalBorderAdded, bool singleHorizontalBorderAdded, bool isFirstDisplayedRow, bool isLastDisplayedRow) { // 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. dataGridViewAdvancedBorderStylePlaceHolder.Top = isFirstDisplayedRow ? DataGridViewAdvancedCellBorderStyle.InsetDouble : DataGridViewAdvancedCellBorderStyle.None; dataGridViewAdvancedBorderStylePlaceHolder.Right = DataGridViewAdvancedCellBorderStyle.OutsetDouble; dataGridViewAdvancedBorderStylePlaceHolder.Left = dataGridViewAdvancedBorderStyleInput.Left; dataGridViewAdvancedBorderStylePlaceHolder.Bottom = dataGridViewAdvancedBorderStyleInput.Bottom; return dataGridViewAdvancedBorderStylePlaceHolder; } } }
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.