数据网格视图标题网格颜色

时间:2010-01-14 22:12:27

标签: vb.net datagridview colors separator border-color

这是一个VB .NET应用程序,我们在Datagrid视图中显示SQL语句的输出。使用.NET 2005。

我们需要让网格控件上标题的分隔符与表单上的GridColor颜色相同。见下图:

alt text

我们已经尝试查看DataGridView控件的所有属性,并发现一些看起来很有意义的有趣的东西,例如DataGridViewAdvancedHeaderStyle和DataGridViewHeaderBorderStyle,但它们似乎都不允许你更改它上面的颜色。 / p>

有没有人知道怎么做而不用GDI +控制重塑整个事情?

3 个答案:

答案 0 :(得分:2)

好吧,我从未找到过这个属性,所以我最终创建了一个自定义组件,并重载了OnPaint事件处理程序以在现有组件上绘制一条线。

如果其他人遇到过这篇文章寻找解决方案,那么这是代码:

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

答案 1 :(得分:0)

我看不到图片,但是玩这些图片呢?

DataGridView.ColumnBordersHeaderStyle
DataGridView.RowBordersHeaderStyle

答案 2 :(得分:0)

要更改datagridview中列标题的背景色,请为EnableHeadersVisualStyles选择False。然后打开ColumnHeadersDefaultCellStyle并选择背景颜色。