1

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

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

替代文字

我们尝试查看 DataGridView 控件的所有属性,发现了一些看起来很有希望的有趣的东西,例如 DataGridViewAdvancedHeaderStyle 和 DataGridViewHeaderBorderStyle,但似乎没有一个允许您更改其颜色。

有谁知道如何在不使用 GDI+ 控件重新制作整个事物的情况下做到这一点?

4

3 回答 3

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
于 2010-02-10T19:35:06.983 回答
1

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

于 2019-11-18T20:37:07.733 回答
0

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

DataGridView.ColumnBordersHeaderStyle
DataGridView.RowBordersHeaderStyle
于 2010-01-14T22:48:50.863 回答