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

FpSpread의 CellClick 이벤트에서 checkbox 적용 관련 문의 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 FpSpread의 CellClick 이벤트에서 checkbox 적용 관련 문의

페이지 정보

작성자 모오오라 작성일 2023-10-05 15:06 조회 238회 댓글 0건
제품 버전 : 5.0.3514.2008
컨트롤 이름 : FpSpread

본문

안녕하세요.

CellClick 이벤트를 이용하여

checkbox를 클릭 할 경우 check 유무에 따라 

데이터를 가져와 다른 FpSpread의 Sheet의 checkbox에 check를 하는 코드를 짜는 중

문제가 있어서 문의 드립니다.


1. 디버깅을 걸면 CellClick 에는 들어 오나 UI 상에 check가 토글이 안됩니다.

2. UI상 토글도 되지 않고 "True" 상태가 들어오지 않습니다.

    아래 코드에서 FpSpread_Sheet1.Cells[e.Row, 0].Text 에 

    처음 클릭하면 ""(string.Empty)가 들어오고 UI는 아무런 반응이 없습니다.

    그 상태에서 다시 한번 클릭하면 "False"가 들어 옵니다.


아무래도 제가 CheckBox CellType 컨트롤에 대해서 잘못 이해를 하고 있거나

CellClick 이벤트 발생 시점을 제대로 이해 못한거 같은데 해당 부분 확인 부탁드립니다.


private void FpSpread_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)

        {

            if (FpSpread.Sheets[0].RowCount == 0)

                return;


            if (e.ColumnHeader && e.Column == 0)

            {

            } 

            else if (e.Column == 0)

            {

                if (FpSpread_Sheet1.Cells[e.Row, 0].Text == "True")

                {

                    if (this.materialID != FpSpread_Sheet1.Cells[e.Row, (int)COL.MAT_ID].Text)

                    {

                        this.materialID = FpSpread_Sheet1.Cells[e.Row, (int)COL.MAT_ID].Text;

                        

                        DataTable dt = 데이터 파싱;


                        if (dt != null)

                        {

                            FpSpread_right_Sheet1.Cells[0, 0].Text = dt.Rows[0]["MAT_AP01"].ToString() == "Y" ? "True" : "False";

                            FpSpread_right_Sheet1.Cells[1, 0].Text = dt.Rows[0]["MAT_AP02"].ToString() == "Y" ? "True" : "False";

                            FpSpread_right_Sheet1.Cells[2, 0].Text = dt.Rows[0]["MAT_AP03"].ToString() == "Y" ? "True" : "False";

                            FpSpread_right_Sheet1.Cells[3, 0].Text = dt.Rows[0]["MAT_AP04"].ToString() == "Y" ? "True" : "False";

                        }

                    }

                }

            }

        }

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

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: FpSpread의 CellClick 이벤트에서 checkbox 적용 관련 문의

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

페이지 정보

작성자 GCK써니 작성일 2023-10-06 14:16 댓글 0건

본문

모오오라 님, 안녕하세요.

그레이프시티입니다.


체크박스 셀 타입으로 설정된 셀의 checkbox를 클릭했을 때, CellClick 이벤트가 먼저 발생한 후 checkbox의 상태가 변경됩니다. 또한 처음 셀 타입을 체크박스 셀 타입으로 설정한 후 해당 셀의 Value 또는 Text 값을 초기화 하지 않은 경우, 해당 셀의 Value 값은 null, Text 값은 ""(string.Empty)입니다.


이러한 이유로 처음 checkbox를 클릭하면 UI 상에 check의 상태가 변경되지 않고, 해당 셀의 Text 값으로 ""이 들어오는 것입니다.


원하시는 기능 구현을 위해서, CellClick 이벤트 대신 아래 예시와 같이 ButtonClicked 이벤트를 적용해보실 것을 제안드립니다.

private void Form1_Load(object sender, EventArgs e)
{
    FpSpread.ActiveSheet.Columns[0].CellType = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
    FpSpread.ButtonClicked += FpSpread_ButtonClicked;
}

private void FpSpread_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
{
    if (FpSpread_Sheet1.RowCount == 0) return;

    if (FpSpread_Sheet1.GetCellType(e.Row, e.Column).ToString() == "CheckBoxCellType")
    {
        if (e.Column == 0)
        {
            Console.WriteLine(FpSpread_Sheet1.Cells[e.Row, 0].Text);
        }
    }
}

ButtonClicked 이벤트는 사용자가 셀의 버튼, 체크박스 또는 하이퍼링크를 클릭할 때 발생하는 이벤트입니다. 해당 이벤트에 대한 보다 자세한 설명은 아래 링크된 문서에서 확인하실 수 있습니다.

Spread.NET WinForms V6 | ButtonClicked Event


답변의 내용이 도움이 되었을 경우, 게시글 우측 상단에 있는 "채택" 버튼을 눌러 피드백해주시면 감사드리겠습니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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