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

checkbox 를 활용한 row 선택 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 checkbox 를 활용한 row 선택

페이지 정보

작성자 tomleee 작성일 2024-01-11 03:47 조회 63회 댓글 1건
제품 버전 : 16.2.20231.0

본문

위의 화면에서 checkbox 를 선택할 시에 드래그 선택과 동일한 기능을 구현하고싶습니다.

도움 부탁드립니다.


해당 코드


첫번째 칼럼을 checkbox로 선택한 후에


체크된 row에 기입된 모든 정보들이 새 창에 불러지는 기능이 필요합니다.

(위의 사진처럼 현재는 셀들을 드래그 선택을 한 후에만 구현이됩니다.)



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

댓글목록

MESCIUS써니님의 댓글

MESCIUS써니 작성일

tomleee 님, 안녕하세요.
메시어스 입니다.

문의하신 기능에 대하여 확인 중입니다.
관련 내용이 업데이트 되는 대로 안내드리겠습니다.

감사합니다.
메시어스 드림

1 답변

WinForms윈폼 Re: checkbox 를 활용한 row 선택

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

페이지 정보

작성자 MESCIUS써니 작성일 2024-01-22 14:27 댓글 0건

본문

tomleee 님, 안녕하세요.

메시어스입니다.


먼저, 오랜시간 기다려주셔서 감사드립니다.


문의하신 기능에 대하여 지속적으로 확인해보았으나, 아쉽게도 원하시는 기능을 구현할 수 있는 방법은 지원되지 않는 것으로 확인되었습니다. 원하시는 도움을 드리지 못해 죄송합니다.


다만, 해당 시트(첫번째 열에 체크박스 셀이 있는 시트)에 사용자가 직접 셀에 값 입력/편집/삭제 하지 않을 경우에는 다음과 같은 방법을 고려해볼 수 있습니다.


해당 시트의 OperationMode를 MultiSelect로 설정하고 SelectionUnit을 Row로 설정하여, 행 단위로 다중 선택이 이루어지게 합니다.

이 때, SelectionChanging 이벤트와 SelectionChanged 이벤트의 이벤트 핸들러를 아래와 같이 정의 하여, 체크박스를 클릭했을 때에만 Selection이 추가되도록 하실 수 있습니다.

아래 샘플 코드를 참고 부탁드립니다.

private void Form1_Load(object sender, EventArgs e)
{
    CheckBoxCellType checkBoxCellType = new CheckBoxCellType();
    fpSpread1.ActiveSheet.Columns[0].CellType = checkBoxCellType;
    fpSpread1.ActiveSheet.OperationMode = OperationMode.MultiSelect;
    fpSpread1.ActiveSheet.SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row        
    fpSpread1.SelectionChanging += FpSpread1_SelectionChanging;
    fpSpread1.SelectionChanged += FpSpread1_SelectionChanged;
}

private void FpSpread1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    SheetView sheetView = e.View.GetSheetView();
    int row = sheetView.ActiveRowIndex;
    fpSpread1.ActiveSheet.AsWorksheet().Cells[row, 0].Value = sheetView.IsSelected(row, 0) ? true : null;
}

private void FpSpread1_SelectionChanging(object sender, SelectionChangingEventArgs e)
{
    if (Control.MouseButtons == MouseButtons.Left)
    {
        Point p = Control.MousePosition;
        p = fpSpread1.PointToClient(p);
        HitTestInformation ht = fpSpread1.HitTest(p.X, p.Y);
        if (ht.Type == HitTestType.Viewport && ht.ViewportInfo.Column == 0)
        {
            return;
        }
        e.Cancel = true;
    }
}


감사합니다.

메시어스 드림


댓글목록

등록된 댓글이 없습니다.

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