Шрифт строки формата VB.NET в DataGridViewer

Я связываю представление данных со списком объектов (отчет)

    DataGridView2.DataSource = Report

и потому что я делаю это, текстовый формат всех строк идентичны.

Есть ли способ отформатировать конкретную строку в таблице? Например, я хотел бы, чтобы текст строки 1 выделен жирным шрифтом, остальные строки по умолчанию являются нормальными.

Большое спасибо

2 ответа

Как и для столбца, строка в DataGridView имеет DefaultCellStyle, Тот DataGridViewCellStyle имеет Font свойство, которое вы можете установить на Font с соответствующими Style настройка, например

Dim cellStyle = myDataGridViewRow.DefaultCellStyle
Dim font = cellStyle.Font

cellStyle.Font = New Font(font, font.Style Or FontStyle.Bold)

РЕДАКТИРОВАТЬ: я понял, что этот код не будет работать, если вы еще не установили явно Font для этого ряда. Если каждая ячейка наследует свой стиль от сетки, то вам также нужно получить шрифт из сетки:

Dim font = myDataGridView.DefaultCellStyle.Font

myDataGridViewRow.DefaultCellStyle.Font = New Font(font, font.Style Or FontStyle.Bold)

Ты можешь использовать DataGridView.CellFormatting событие и изменение стиля каждой ячейки, если индекс строки равен 0.

Private Sub YourDataGridView_CellFormatting(sender AS Object, 
                                            e As DataGridViewCellFormattingEventArgs)
    If e.RowIndex <> 0 Then Exit Sub

    ' Use e.CellStyle for formatting a cell
    e.CellStyle.BackColor = Color.Grey;
    e.CellStyle.Font = yourFontForFirstRow
End Sub

Заметить, что DataGridView.CellFormatting Событие происходит каждый раз, когда управление рисует, поэтому вы должны быть осторожны и не выполнять "тяжелую" логику в этом событии. Событие DataGridView.CellFormatting

Другие вопросы по тегам