Заголовок представления сетки данных Цвет сетки - PullRequest
1 голос
/ 15 января 2010

Это приложение VB .NET, в котором мы показываем выходные данные оператора SQL в представлении Datagrid.используя .NET 2005.

Нам нужно, чтобы разделители заголовков элемента управления сеткой были того же цвета, что и GridColor в форме.См. Рисунок ниже:

alt text

Мы попытались просмотреть все свойства элемента управления DataGridView и нашли некоторые интересные вещи, которые выглядели многообещающими, такие как DataGridViewAdvancedHeaderStyle и DataGridViewHeaderBorderStyle, но, похоже, ничего из этого не позволяет вам изменять цвета на нем.

Кто-нибудь знает, как это сделать, не переделывая всю вещь с помощью элемента управления GDI +?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2010

Ну, я так и не нашел свойства для этого, поэтому я закончил тем, что создал пользовательский компонент и перегрузил обработчик события 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
0 голосов
/ 15 января 2010

Я не вижу изображения, но как насчет игры с ними?

DataGridView.ColumnBordersHeaderStyle
DataGridView.RowBordersHeaderStyle
...