WinForms [Event] 셀 클릭 또는 셀 더블 클릭 시 다른 컨트롤로 포커스를 이동하는 방법
페이지 정보
작성자 MESCIUS써니 작성일 2023-11-30 14:32 조회 61회 댓글 0건본문
관련링크
Spread를 통해 제품 판매 데이터를 보여주고, 특정 셀을 클릭 또는 더블 클릭했을 때 해당 데이터에 대한 상세 내역을 조회하여 Text Box 등 다른 컨트롤에 보여줄 수 있습니다. 또한 해당 컨트롤로 포커스를 이동하여 내용을 추가로 편집하도록 할 수 있습니다.
이를 위해, 셀 클릭 또는 셀 더블 클릭 시 다른 컨트롤로 포커스를 이동하는 방법을 살펴보겠습니다.
먼저, 셀 클릭 이벤트 핸들러를 생성합니다.
private void FpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) { }
셀 클릭 이벤트가 발생했을 때, 동작하게 할 명령어들을 이벤트 핸들러 내에 정의합니다.
private void FpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) { e.cancel = true; fpSpread1.ActiveSheet.SetActiveCell(e.Row, e.Column); // ... Do somethings ... textBox1.Focus(); }
CellClick 이벤트에 이벤트 핸들러를 등록합니다.
fpSpread1.CellClick += FpSpread1_CellClick;
이제, Spread에서 셀을 클릭했을 때 포커스가 textBox1로 이동하는 것을 확인하실 수 있습니다.
Point!
Spread에서 CellClick/CellDoubleClick 이벤트가 발생하면, 이벤트 발생 후 Spread 내부에서 정의된 처리가 실행됩니다. 이 경우 Spread에 포커스가 필요하기 때문에, 이벤트 내에서 일시적으로 다른 컨트롤에 포커스를 이동시켜도 이벤트 발생 후에 다시 시트로 포커스가 돌아옵니다.
따라서, 셀 클릭 또는 셀 더블 클릭 시 다른 컨트롤로 포커스가 이동하게 하기 위해서는, Spread 내부에서 정의된 처리를 취소해줘야 합니다. 이를 위해, e.cancel 속성을 true로 설정합니다.
CellDoubleClick 이벤트의 경우에도 동일하게, Spread의 셀을 더블 클릭했을 때 다른 컨트롤로 포커스를 이동할 수 있습니다. 샘플 코드는 다음과 같습니다.
fpSpread1.CellDoubleClick += FpSpread1_CellDoubleClick; private void FpSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) { e.Cancel = true; // ... Do somethings ... textBox1.Focus(); }
지금까지 셀 클릭 또는 셀 더블 클릭 시 다른 컨트롤로 포커스를 이동하는 방법을 살펴보았습니다.
댓글목록
등록된 댓글이 없습니다.