! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

특정 컬럼의 폭을 그리드 여분의 넓이로 자동 맞춤 기능 문의 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 특정 컬럼의 폭을 그리드 여분의 넓이로 자동 맞춤 기능 문의

페이지 정보

작성자 junbottae 작성일 2024-02-14 10:15 조회 49회 댓글 0건
제품 버전 : 16.1
컨트롤 이름 : FarPoint Spread

본문


위 사진에 대한 설명입니다.

1.그리드의 마지막 컬럼 이후 공백을 없애는 기능 문의

2.특정 컬럼의 폭을 자동으로 늘림


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 특정 컬럼의 폭을 그리드 여분의 넓이로 자동 맞춤 기능 문의

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS써니 작성일 2024-02-14 15:50 댓글 0건

본문

junbottae 님, 안녕하세요.

메시어스입니다.


특정 컬럼의 폭을 그리드 여분의 너비로 자동 맞춤하는 속성 또는 메서드는 존재하지 않습니다.

다만, FpSpread의 너비에서 타겟 컬럼을 제외한 나머지 컬럼과 로우 헤더, 수직 스크롤바의 너비를 뺀 나머지 값을 타겟 컬럼의 너비로 설정함으로써, 말씀하신 것과 유사한 기능을 적용해보실 수 있습니다.


또한, 스프레드의 크기가 변경될 때마다 타겟 컬럼의 너비를 재설정하고 싶으신 경우, FpSpread 클래스의 Resize 이벤트를 활용하실 수 있습니다.


아래 샘플 코드를 개발 시 참고하여주시기 바랍니다.

private void Form1_Load(object sender, EventArgs e)
{
    fpSpread1.Dock = DockStyle.Fill;
     
    fpSpread1.ActiveSheet.RowCount = 20;
    fpSpread1.ActiveSheet.ColumnCount = 7;
    fpSpread1.ScrollBarMaxAlign = true;

    int targetIndex = 0;
    fpSpread1.ActiveSheet.Columns[targetIndex].Width = fpSpread1.Width - GetTotalWidth(fpSpread1, targetIndex);

    fpSpread1.Resize += FpSpread1_Resize;
}

// targetColumn을 제외한 나머지 컬럼 너비와 행 헤더 너비, 수직 스크롤바 너비 합계
private float GetTotalWidth(FarPoint.Win.Spread.FpSpread fpSpread, int targetIndex)
{
    float sum = 0;

    // RowHeader의 너비를 합합니다.
    if (fpSpread.ActiveSheet.RowHeader.Visible)
    {
        sum += fpSpread.GetRowHeaderRectangle(fpSpread.GetActiveRowViewportIndex(fpSpread.ActiveSheetIndex)).Width;
    }

    // targetColumn을 제외한 나머지 컬럼의 너비를 합합니다.
    for (int i = 0; i < fpSpread.ActiveSheet.ColumnCount; i++)
    {
        if (i != targetIndex)
        {
            sum += fpSpread.ActiveSheet.Columns[i].Width;
        }
    }

    // verticalScrollBar 너비를 합합니다.
    if (fpSpread.VerticalScrollBar.Visible)
    {
        sum += fpSpread.VerticalScrollBar.Size.Width;
    }

    return sum;
}

private void FpSpread1_Resize(object sender, EventArgs e)
{
    // 스프레드의 시트에 대한 참조를 가져옵니다.
    FarPoint.Win.Spread.FpSpread fpSpread = (FarPoint.Win.Spread.FpSpread)sender;
    FarPoint.Win.Spread.SheetView sheet = fpSpread.ActiveSheet;

    // 타겟 컬럼 인덱스를 설정합니다.
    int targetColumnIndex = 0; // 예시로 첫 번째 컬럼을 선택합니다.

    // 스프레드의 너비에 맞게 타켓 컬럼의 너비를 조정합니다.
    float result = fpSpread.Width - GetTotalWidth(fpSpread1, targetColumnIndex);
    sheet.Columns[targetColumnIndex].Width = (result > 0 ? result : 0);
}

a046ed172ad250d0cc2c661b7e94520d_1707893429_0245.gif
 

아울러, 그리드의 마지막 컬럼 이후 공백을 없애는 기능은 Spread.NET에서 지원하지 않는 기능입니다.

이는 Microsoft Excel과 동일한 동작으로, MS Excel에서도 스크롤을 최하단으로 스크롤하거나 우측 끝으로 스크롤 했을 때 마지막 행/열 뒤에 공백이 있는 것을 확인하실 수 있습니다.


감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.