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

Spread Change이벤트를 실행할 때 CellDoubleClick 이벤트로 넘겨 받은 e 매개변수를 전달할 수 없을까요? > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 Spread Change이벤트를 실행할 때 CellDoubleClick 이벤트로 넘겨 받은 e 매개변수를 전달할 수 없을까요?

페이지 정보

작성자 편도준 작성일 2022-08-08 17:55 조회 1,730회 댓글 0건
제품 버전 : Spread.NET_V12_12.0.20193.0
컨트롤 이름 : ChangeEvent, CellDoubleClickEvent

본문

private void fpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e)

{

if(e.ColumnHeader == true)

fpSpread1.Sheets[0].Cells[e.Row, e.Column].BackColor = Color.Red;

}


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

{

fpSpread1_Change();       // 해당 구문 수정 요청

}


두 개의 이벤트가 존재한다고 하였을 때 

CellDoubleClick 이벤트 발생 시 fpSpread1_Change의 이벤트를 실행하고 싶습니다. 

그 때 CellDoubleClick이벤트에서 넘겨 받은 매개변수 e를 fpSpread1_Change 이벤트의 e매개변수에 그대로 전달하여 실행하고 싶은데 혹시 방법이 있을까요?


fpSpread1_Change(null, FarPoint.Win.Spread.ChangeEventArgs(e)); 

이런 식으로 형변환하여 매개변수를 그대로 전달하여 실행하고 싶습니다. 

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

댓글목록

등록된 댓글이 없습니다.

3 답변

WinForms윈폼 Re: Spread Change이벤트를 실행할 때 CellDoubleClick 이벤트로 넘겨 받은 e 매개변수를 전달할 수 없…

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

페이지 정보

작성자 GCK써니 작성일 2022-08-09 16:13 댓글 0건

본문

편도준 님, 안녕하세요.

그레이프시티입니다.


답변에 앞서 한가지 질문 드립니다.

FpSpread.Change 이벤트 내에서, boolean 값인 ColumnHeader를 사용하시려는 목적이 무엇인가요?

해당 방법을 활용하여 구현하고자 하는 기능을 말씀해주신다면, 더 적절한 방법이 있는지 확인 후 안내드릴 수 있도록 하겠습니다.


아울러, 폼 내 모든 데이터는 보관하였다가 나중에 사용할 수 있습니다.

FpSpread.CellDoubleClick 이벤트에서 넘겨받은 인자를 FpSpread.Change 이벤트 처리 시 사용하고 싶으신 경우, 아래의 방법을 활용해보시기 바랍니다.

FarPoint.Win.Spread.CellClickEventArgs _cellClickEventArgs;

private void FpSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
{
    _cellClickEventArgs = e;
    // Invoke fpSpread1.Change event
}

private void FpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e)
{
    if (_cellClickEventArgs != null)
    {
        //access _cellClickEventArgs
        _cellClickEventArgs = null;
    }
}


추가로 궁금하신 점이 있을 경우, 문의주시기 바랍니다.

감사합니다.

그레이프시티 드림


댓글목록

등록된 댓글이 없습니다.

WinForms윈폼 Re: Spread Change이벤트를 실행할 때 CellDoubleClick 이벤트로 넘겨 받은 e 매개변수를 전달할 수 없…

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

페이지 정보

작성자 편도준 작성일 2022-08-09 17:06 댓글 0건

본문

안녕하세요

먼저 답변해주셔서 감사드립니다.


설명했던 부분이 미숙해서 좀 다른 방향으로 이해를 하신 것 같습니다. 죄송합니다


정확한 의도는 "스프레드 셀더블클릭" 이벤트가 발생하였을 때 강제적으로 "스프레드 체인지" 이벤트를 발생시키는것입니다.

그런데 Change이벤트에서 선택한 행값이 6일 경우 폼을 종료하는 문이 있다고 가정하였을 때 

CellDoubleClick이벤트가 발생하고 Change이벤트를 강제적으로 실행해줄때 현재 선택한 e값을 넘겨줘야만 Change

이벤트에서 e.Row가 6인지 판단할 수 있으므로 Change이벤트를 명시적으로 실행할때 e값을 그대로 넘기는 방법을 알고 싶습니다. 


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

{

fpSpread1_Change(null, null);

}

private void fpSpread1_Change(object sender, FarPoint.Win.Spread.ChangeEventArgs e) 

{

if(e.Row ==6)

    this.close();

}


댓글목록

등록된 댓글이 없습니다.

WinForms윈폼 Re: Spread Change이벤트를 실행할 때 CellDoubleClick 이벤트로 넘겨 받은 e 매개변수를 전달할 수 없…

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

페이지 정보

작성자 GCK써니 작성일 2022-08-09 18:04 댓글 0건

본문

편도준 님, 안녕하세요.

그레이프시티입니다.


먼저 자세한 설명에 감사드리며,

말씀해주신 내용을 "FpSpread_Change 이벤트를 명시적으로 호출할 때, 매개변수로 어떤 값을 입력해야하는가"로 이해하였습니다. 제가 올바르게 이해하였을까요?


만약 그렇다면, 아래와 같이 CellDoubleClick 내에서 새로운 ChangeEventArgs 객체를 생성하여 매개변수로 사용하실 수 있습니다.

private void Form1_Load(object sender, EventArgs e)
{
    fpSpread1.CellDoubleClick += FpSpread1_CellDoubleClick;
}

private void FpSpread1_Change(object sender, ChangeEventArgs e)
{
    if(e.Row == 6)
    {
        this.Close();
    }
}

private void FpSpread1_CellDoubleClick(object sender, CellClickEventArgs e)
{
    ChangeEventArgs changeEventArgs = new ChangeEventArgs(e.View, e.Row, e.Column);
    FpSpread1_Change(sender, changeEventArgs);
}


다만 이 경우, CellClickEventArgs의 멤버 중, [SpreadView View, int Row, int Column] 값만 전달이 되고, ColumnHeader, ColumnFooter 등 다른 속성 값은 Chagne 이벤트에서 사용할 수 없습니다.

만약 CellClickEventArgs의 모든 멤버 변수를 Change 이벤트에서 사용하고 싶으신 경우, 첫번째 답글에서 안내드린 것과 같이 전역 변수를 활용하여 주시기 바랍니다.


만일 안내드린 방법이 구현하시려는 기능에 적절하지 않은 경우, 회신 부탁드립니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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