問題:
DataGridView 以行和列的形式顯示資料清單。在本例中,資料被組織成群組,每組都有一個表頭單元格 (Hd1)。目標是合併這些表頭單元格以改善資料顯示。
解:
要在 DataGridView 中合併儲存格,首先需要辨識要合併的欄位中重複的值。以下解決方案包含兩種方法和事件處理程序:
<code class="language-csharp">bool IsTheSameCellValue(int column, int row) { DataGridViewCell cell1 = dataGridView1[column, row]; DataGridViewCell cell2 = dataGridView1[column, row - 1]; if (cell1.Value == null || cell2.Value == null) { return false; } return cell1.Value.ToString() == cell2.Value.ToString(); }</code>
<code class="language-csharp">private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None; if (e.RowIndex < 1 || !IsTheSameCellValue(e.ColumnIndex, e.RowIndex)) { return; } // ... (其余代码处理单元格合并的视觉效果) ... }</code>
<code class="language-csharp">if (e.RowIndex == 0) return; if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex)) { e.Value = ""; e.FormattingApplied = true; }</code>
<code class="language-csharp">dataGridView1.AutoGenerateColumns = false;</code>
結果:
透過實作這些方法和事件處理程序,您可以合併 DataGridView 中的儲存格,從而使資料的表示更簡潔、更具視覺吸引力。
以上是如何在 WinForms 中合併 DataGridView 標題單元格以改善資料呈現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!