Maison >développement back-end >C++ >Comment fusionner des cellules DataGridView dans WinForms ?

Comment fusionner des cellules DataGridView dans WinForms ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-12 15:28:43242parcourir

How to Merge DataGridView Cells in WinForms?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn