cuadrícula de datos de color Cuadrícula cabecera
-
20-09-2019 - |
Pregunta
Esta es una aplicación de VB .NET, donde estamos mostrando la salida de una instrucción SQL en una vista de cuadrícula de datos. utilizando .NET 2005.
Tenemos que conseguir los separadores de las cabeceras en el control de la red a ser los mismos colores que la GridColor en el formulario. Ver la imagen siguiente:
Hemos tratado de buscar a través de todas las propiedades del control DataGridView, y encontramos algunas cosas interesantes que parecía prometedor como el DataGridViewAdvancedHeaderStyle y DataGridViewHeaderBorderStyle, pero nada de esto parece que permitirá cambiar los colores en él.
¿Alguien sabe cómo hacer esto sin rehacer toda la cosa con un control de GDI +?
Solución
Bueno, nunca llegué a encontrar una propiedad para esto, así que terminé la creación de un componente personalizado, y la sobrecarga del controlador de eventos OnPaint para dibujar una línea sobre la existente.
Este es el código para que si alguien alguna vez se encuentra con este post en busca de una solución:
Private Sub CustomDataGridView_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim g As Graphics = e.Graphics
Dim pen As New Pen(Me.GridColor)
Dim TWidth As Integer = 2
Dim HeaderWidth As Integer = 0
If Me.RowHeadersVisible Then
HeaderWidth = Me.RowHeadersWidth
End If
For Each column As DataGridViewColumn In Me.Columns
Dim x As Integer = HeaderWidth + TWidth - 1
TWidth += column.Width
Dim top As Integer = column.HeaderCell.ContentBounds.Top
Dim bottom As Integer = column.HeaderCell.ContentBounds.Bottom + 1
pen.Width = 2
g.DrawLine(pen, x, top, x, bottom)
Next column
End Sub
Otros consejos
No puedo ver la imagen, pero ¿qué hay de jugar con ellos?
DataGridView.ColumnBordersHeaderStyle
DataGridView.RowBordersHeaderStyle