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

체크박스 자동 체크 방지 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 체크박스 자동 체크 방지

페이지 정보

작성자 달뮤즈 작성일 2023-02-27 15:20 조회 441회 댓글 0건
제품 버전 : Spread.NET 12
컨트롤 이름 : Farpoint Spread

본문

데이터의 변경 유무 확인을 위해

예를 들어 Spread내에서 A 컬럼의 CellType을 CheckBoxCellType으로 선언하여,

ChangeEvent를 통해 임의의 Cell의 값이 변경되었을 경우 A컬럼 체크박스가 에 자동 체크가 됩니다.

A컬럼은 데이터 변경이 있을 경우에만 체크 되도록 .cs 코드에서 값을 set 하는 방식으로, 기본적으로 Readonly (Locked, Disabled) 상태로 제공하고 있습니다. 
 

일부 윈폼에 작업한 Spread 에서,

열개의 row에 데이터가 있다고 가정 했을 때, 2번 Row의 B 컬럼에 셀 클릭을 했을 경우,

1번 row A 컬럼 체크박스가 checked 상태가 됩니다.

다시 refresh후, 1번 row 부터 10번 row의 A 컬럼 체크박스가 모두 unchecked 상태에서

3번 row의 C 컬럼의 셀을 클릭 한 경우에도 1번 row A 컬럼 체크박스가 checked 상태가 됩니다.

모두 데이터 변경 없이 CellClick 만 한 경우입니다.


Change 이벤트 외의 부분에서는 A 컬럼 체크박스를 제어하지 않고 있는데,

위의 문제를 해결하기 위한 접근 방법, 근본적인 문제 해결 방법이 있을까 하여 문의 드립니다.

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

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: 체크박스 자동 체크 방지

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

페이지 정보

작성자 GCK써니 작성일 2023-02-28 10:22 댓글 0건

본문

달뮤즈 님, 안녕하세요.

그레이프시티입니다.


상세한 설명과 함께 문의주심에 감사드립니다.


전달해주신 내용을 토대로 다음과 같이 샘플 코드를 작성하여 테스트해보았으나, 저희 편에서는 말씀하신 현상이 재현되고 있지 않아, 해결방법 확인에 어려움이 있습니다.

private void Form1_Load(object sender, EventArgs e)
{
    fpSpread1.ActiveSheet.RowCount = 10;

    // A컬럼 셀 타입 설정 및 초기화
    FarPoint.Win.Spread.CellType.CheckBoxCellType check = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
    fpSpread1.ActiveSheet.Columns[0].CellType = check;
    fpSpread1.ActiveSheet.Cells[0, 0, fpSpread1.ActiveSheet.RowCount -1, 0].Value = false;

    // Change 이벤트 추가
    fpSpread1.Change += FpSpread1_Change;
}

private void FpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e)
{
    // 변화가 발생한 셀이 B컬럼에 속해있을 경우
    if(e.Column == 1)
    {
        e.View.Sheets[e.View.ActiveSheetIndex].Cells[e.Row, 0].Value = true;
    }
}

// 버튼 클릭 시, A 컬럼의 체크박스 체크 해제
private void button1_Click(object sender, EventArgs e)
{
    fpSpread1.ActiveSheet.Cells[0, 0, fpSpread1.ActiveSheet.RowCount - 1, 0].Value = false;
}


혹시 저희가 해당 현상을 재현해볼 수 있는 샘플 프로젝트 혹은 샘플 코드를 제공해주실 수 있으실지요? 전달해주신 샘플을 바탕으로 원인 및 적용 가능한 해결 방법이 있는지 확인하여 안내드릴 수 있도록 하겠습니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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