我一個DataGridView綁定到對象的列表(報告)VB.NET格式排字體,DataGridViewer
DataGridView2.DataSource = Report
而且因爲我這樣做,所有的行文本格式是相同的。
有什麼辦法可以格式化表中的某一行?例如,我希望將行1的文本以粗體顯示,其餘行默認爲正常。
非常感謝
我一個DataGridView綁定到對象的列表(報告)VB.NET格式排字體,DataGridViewer
DataGridView2.DataSource = Report
而且因爲我這樣做,所有的行文本格式是相同的。
有什麼辦法可以格式化表中的某一行?例如,我希望將行1的文本以粗體顯示,其餘行默認爲正常。
非常感謝
您可以使用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 Event
我試過了你的方法,但它不工作,單元格樣式沒有任何改變。 –
@ N.T.C - 你是否通過在構造函數中使用'AddHandler yourDataGridView.CellFormatting,AddressOf YourDataGridView_CellFormatting'或通過在方法聲明中添加'處理yourDataGridView.CellFormatting'來訂閱事件? – Fabio
就像列一樣,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)
該解決方案將更改表格中所有單元格的字體,而不僅僅是一行。 –
除外。 – jmcilhinney
@NTC ti會,但首先你需要從datagriview獲得第一行:'myDataGridViewRow = yourDataGridView.Rows(0)',因爲DataGridView可能沒有任何行,所以你需要首先檢查是否有任何行訪問第一行的索引 – Fabio
幽州_「舉個例子,我想有粗體,其餘第1行的文字的行是正常的「_...理論上的可見行1可能是許多行中的一行。例如,頂部可見行(第1行?)將其字體設置爲粗體,然後用戶向下滾動,使頂部行向上滾動出網格的可見部分。你想只有第一個可見的行保持大膽?我沒有嚴格遵循什麼條件,哪一行應該是大膽的。 – JohnG