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

컬럼 헤더 지정 관련 문의 > Q&A | 토론

본문 바로가기

WinForms윈폼 컬럼 헤더 지정 관련 문의

페이지 정보

작성자 무념무상 작성일 2023-04-24 17:50 조회 437회 댓글 0건
제품 버전 : 15.0

본문

안녕하세요!


아래와 그림과 같이 체크박스를 중간 row  에 삽입하여 체크박스 기능을 구현하고 싶습니다.

최상단에 전체체크박스 가 있어 하위의 모든 체크 박스가  체크 ,체크 해제 까지 되어야 합니다. 


중간 row 에 체크박스를 삽입한다는 뜻은 곧, 컬럼 헤더를 해당 row에  지정한다는 뜻 같은데....

컬럼헤더가 기본으로 row 0  에 지정되어 있어, 제가 시도해 본 바로는 변경이 쉽지 않고, 

전체체크박스를 구현하기가 매우 어려워 도움을 요청하게 되었습니다. 


아래 그림보시면 왼쪽부터 3 열(col) 까지는 row 의 셀이 병합된 부분도 있습니다. 

이런 부분까지 감안하여 주시고 답변을 부탁드립니다.


개발언어로는 vb.net 을 사용하고 있습니다. 


감사합니다.


405c6f710aab61d8033713d1f37098ac_1682325833_3238.png
 


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

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 컬럼 헤더 지정 관련 문의

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

페이지 정보

작성자 GCK써니 작성일 2023-04-25 14:06 댓글 4건

본문

무념무상 님, 안녕하세요.

그레이프시티입니다.


이미지와 함께 상세하게 문의주심에 감사드립니다.


컬럼 헤더를 중간 row에 지정한다는 말씀은, 전체 체크박스가 있는 행까지를 컬럼 헤더로 지정하고 싶다는 뜻으로 이해되는데, 맞을까요?


그렇다면, ColumHeader의 RowCount 속성을 통해 컬럼 헤더를 여러 행으로 설정하고, 그중 특정 셀의 셀 타입을 체크박스 셀타입으로 설정하실 수 있습니다.

아울러, 말씀하신 전체체크박스 기능은 CellClick 이벤트를 통해 구현할 수 있을 것 보여집니다.


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

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' 컬럼헤더 병합 설정
    FpSpread1.ActiveSheet.ColumnHeader.RowCount = 3
    FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(0, 0, 1, 9)
    FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(1, 0, 2, 1)
    FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(1, 1, 2, 1)
    FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(1, 2, 2, 1)
    FpSpread1.ActiveSheet.AddColumnHeaderSpanCell(1, 3, 1, 9)

    ' 컬럼헤더 배경색 설정
    FpSpread1.ActiveSheet.ColumnHeader.Cells(1, 0, 2, 12).BackColor = Color.LightGray

    ' 체크박스 셀 설정
    Dim check As New FarPoint.Win.Spread.CellType.CheckBoxCellType()
    FpSpread1.ActiveSheet.ColumnHeader.Cells(1, 0).CellType = check
    FpSpread1.ActiveSheet.Columns(0).CellType = check

    ' 체크박스 셀 값 초기화
    FpSpread1.ActiveSheet.ColumnHeader.Cells(1, 0).Value = False
    FpSpread1.ActiveSheet.Cells(0, 0, FpSpread1.ActiveSheet.RowCount - 1, 0).Value = False

    ' 체크박스 정렬 설정
    FpSpread1.ActiveSheet.ColumnHeader.Columns(0).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center
    FpSpread1.ActiveSheet.Columns(0).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center

    ' CellClick Event 추가
    AddHandler FpSpread1.CellClick, AddressOf FpSpread1_CellClick

End Sub

Private Sub FpSpread1_CellClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs)
    ' 클릭한 셀이 컬럼 헤더이고, 체크박스 셀로 설정한 위치인 경우
    If e.ColumnHeader And e.Column = 0 And e.Row = 1 Then
        ' 전체체크박스의 값을 변경
        FpSpread1.ActiveSheet.ColumnHeader.Cells(e.Row, e.Column).Value = Not FpSpread1.ActiveSheet.ColumnHeader.Cells(e.Row, e.Column).Value
        ' 전체체크박스 값에 따라 하위의 모든 체크박스 값을 변경
        If FpSpread1.ActiveSheet.ColumnHeader.Cells(e.Row, e.Column).Value Then
            FpSpread1.ActiveSheet.Cells(0, 0, FpSpread1.ActiveSheet.RowCount - 1, 0).Value = True
        Else
            FpSpread1.ActiveSheet.Cells(0, 0, FpSpread1.ActiveSheet.RowCount - 1, 0).Value = False
        End If
    End If
End Sub


만약 원하시는 기능과 다를 경우, 답글로 말씀 부탁 드립니다.


감사합니다.

그레이프시티 드림

댓글목록

무념무상님의 댓글

무념무상 작성일

감사드립니다. 답변 주신 내용이 맞습니다. 일단 코드 적용 하여 보고 궁금한 점 있으면 다시 답글 드리도록 하겠습니다. 

무념무상님의 댓글

무념무상 작성일

  FpSpread1.ActiveSheet.AddColumnHeaderSpanCell( , , , )
소스의 뜻을 좀 설명해주실 수 있을까요? 문장에는 row , rowCount , col,colCount 라고 되어 있는데  잘 이해가 되지 않네요.. 부탁드리겠습니다.

무념무상님의 댓글

무념무상 작성일

자문자답합니다.  AddColumnHeaderSpanCell(row , col , rowCount , rowColumn)
셀을  확장하기 (시작row , 시작col , 확장할 row 갯수, 확장할col 갯수)  잘 동작합니다. 감사합니다. 

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