Fusion de cellules WinForms DataGridView : guide complet
La clé pour fusionner des cellules dans DataGridView de WinForms est de rechercher et de gérer les valeurs en double. Voici les instructions étape par étape :
Trouver les valeurs en double
Définissez une méthode d'assistance pour comparer les valeurs des cellules pour l'égalité :
<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>
CellPainting
Dans l'événement CellPainting de DataGridView, ajustez le style de bordure des cellules fusionnées :
<code class="language-csharp">private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None; if (e.RowIndex < 0 || e.ColumnIndex < 0) return; if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex)) { e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None; } }</code>
Événement de formatage de cellule (CellFormatting)
Dans l'événement CellFormatting, gérer le formatage des cellules fusionnées :
<code class="language-csharp">private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.RowIndex == 0) return; if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex)) { e.Value = ""; e.FormattingApplied = true; } }</code>
Chargement du formulaire
Désactiver la génération automatique de colonnes :
<code class="language-csharp">private void Form1_Load(object sender, EventArgs e) { dataGridView1.AutoGenerateColumns = false; }</code>
Grâce aux étapes ci-dessus, vous pouvez fusionner des cellules dans DataGridView pour obtenir l'effet de présentation des données souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!