> 백엔드 개발 > C++ > WinForms DataGridView의 첫 번째 열에서 중복 셀을 병합하는 방법은 무엇입니까?

WinForms DataGridView의 첫 번째 열에서 중복 셀을 병합하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-12 15:21:47
원래의
328명이 탐색했습니다.

How to Merge Duplicate Cells in a WinForms DataGridView's First Column?

WinForms DataGridView 셀 병합

질문:

DataGridView에서는 데이터가 행과 열을 포함하는 그리드 형식으로 정렬됩니다. 각 행과 열 교차점은 셀로 표시됩니다. 이 예에서는 첫 번째 열(Hd1)의 중복 값이 ​​병합되지 않는 형식으로 데이터가 표시되어 동일한 값에 대한 여러 행이 생성됩니다.

요구사항:

첫 번째 열(Hd1)에 중복된 값이 있는 셀을 병합하여 시각적 효과를 개선하고 데이터를 효율적으로 통합하는 것이 목표입니다.

해결책:

DataGridView에서 셀을 병합하려면 다음 단계를 따르세요.

  1. 중복 값 찾기:

    • 첫 번째 열에서 인접한 두 셀의 값을 비교하는 IsTheSameCellValue이라는 메서드를 만듭니다. 값이 동일하면 true이 반환되고, 동일하지 않으면 false이 반환됩니다.
<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>
로그인 후 복사
  1. 셀 그리기:

    • CellPainting 이벤트 핸들러를 재정의하고 셀의 AdvancedBorderStyle 속성을 ​​수정합니다.
<code class="language-csharp">private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
    if (e.RowIndex < 1 || e.ColumnIndex < 0)
        return;
    if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex))
    {
        e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
    }
    else
    {
        e.AdvancedBorderStyle.Top = dataGridView1.AdvancedCellBorderStyle.Top;
    }  
}</code>
로그인 후 복사
  1. 셀 서식:

    • 셀이 중복된 경우 CellFormatting 이벤트 핸들러를 재정의하여 값을 빈 문자열로 설정합니다.
<code class="language-csharp">if (e.RowIndex == 0)
    return;
if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex))
{
    e.Value = "";
    e.FormattingApplied = true;
}</code>
로그인 후 복사
  1. 기타 설정:

    • 열이 자동으로 생성되는 것을 방지하려면 양식 로드 이벤트에서 dataGridView1.AutoGenerateColumnsfalse으로 설정하세요.
<code class="language-csharp">dataGridView1.AutoGenerateColumns = false;</code>
로그인 후 복사

결과:

이 단계를 수행하면 DataGridView의 첫 번째 열에 있는 중복 값이 ​​있는 셀이 병합되어 데이터 표시가 더욱 간결하고 체계화됩니다.

위 내용은 WinForms DataGridView의 첫 번째 열에서 중복 셀을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿