WinForms윈폼 특정 컬럼의 폭을 그리드 여분의 넓이로 자동 맞춤 기능 문의
추천0 비추천 0
페이지 정보
작성자 junbottae 작성일 2024-02-14 10:15 조회 59회 댓글 0건제품 버전 : 16.1
컨트롤 이름 : FarPoint Spread
본문
관련링크
댓글목록
등록된 댓글이 없습니다.
등록된 댓글이 없습니다.
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); }
아울러, 그리드의 마지막 컬럼 이후 공백을 없애는 기능은 Spread.NET에서 지원하지 않는 기능입니다.
이는 Microsoft Excel과 동일한 동작으로, MS Excel에서도 스크롤을 최하단으로 스크롤하거나 우측 끝으로 스크롤 했을 때 마지막 행/열 뒤에 공백이 있는 것을 확인하실 수 있습니다.
감사합니다.
메시어스 드림
등록된 댓글이 없습니다.