>백엔드 개발 >C++ >WinForms에서 DataGridView 셀을 병합하는 방법은 무엇입니까?

WinForms에서 DataGridView 셀을 병합하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-12 15:28:43181검색

How to Merge DataGridView Cells in WinForms?

WinForms DataGridView 셀 병합: 전체 가이드

WinForms의 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>

셀페인팅

DataGridView의 CellPainting 이벤트에서 병합된 셀의 테두리 스타일을 조정합니다.

<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>

셀 서식 이벤트(CellFormatting)

CellFormatting 이벤트에서 병합된 셀의 서식을 처리합니다.

<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>

양식 로딩

자동 열 생성 비활성화:

<code class="language-csharp">private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.AutoGenerateColumns = false;
}</code>

위 단계를 통해 DataGridView의 셀을 병합하여 원하는 데이터 표시 효과를 얻을 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.