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

두 개의 시트가 동시에 스크롤 이동 > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 두 개의 시트가 동시에 스크롤 이동

페이지 정보

작성자 김혜주 작성일 2023-09-06 14:01 조회 823회 댓글 0건
제품 버전 : v8.35.20151.0
컨트롤 이름 : Spread, SheetView

본문


sheetView.LeftCol = sheetView.LeftCol;

VB에서 위의 코드를 이용해서  두 개의 시트의 스크롤을 동기화 시키고 있습니다.

C# 으로 변환해야 하는데 방안을 찾지 못해서 문의 드립니다.


두 개의 시트의 RowCount나 ColumnCount가 다를 때

Spread 이벤트를 이용해서 각각의 두 개의 시트의 스크롤을 동기화 시키고 싶습니다. 


클릭 이벤트(CellClickEventArgs) 이나 이동 이벤트(LeftChangeEventArgs, TopChangeEventArgs)을 이용해서 동기화 시키는 방법이 있을까요?(된다면 두 개의 이벤트 모두 부탁드립니다.)

"SetViewportLeftColumn", "SetViewportTopRow" 을사용 하려고 했지만

가장 왼쪽의 ColumnIndex나 가장 위쪽의 RowIndex을 찾는 방법을 알지 못해서 

해결을 못하고 있습니다.





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

댓글목록

등록된 댓글이 없습니다.

3 답변

WinForms윈폼 Re: 두 개의 시트가 동시에 스크롤 이동

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

페이지 정보

작성자 GCK써니 작성일 2023-09-07 08:09 댓글 0건

본문

김혜주 님, 안녕하세요.

그레이프시티입니다.


문의하신 사항에 대하여 아래와 같이 답변 드립니다.


1. CellClick 이벤트를 사용하는 방법


CellClick 이벤트와, 말씀하신 "SetViewportLeftColumn", "SetViewportTopRow"를 사용하여, 한 시트에서 셀을 클릭했을 때 다른 한 시트도 같은 위치로 스크롤 되도록 설정할 수 있습니다.


가장 왼쪽의 ColumnIndex와 가장 위쪽의 RowIndex는 각각 GetViewportLeftColumn 메서드와 GetViewportTopRow 메서드를 사용하여 찾을 수 있습니다.


아래 샘플 코드를 참고하여주시기 바랍니다.

fpSpread1.CellClick += FpSpread1_CellClick;

private void FpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
{
    int leftColumn = fpSpread1.GetViewportLeftColumn(fpSpread1.GetActiveColumnViewportIndex());
    int topRow = fpSpread1.GetViewportTopRow(fpSpread1.GetActiveRowViewportIndex());
    fpSpread2.SetViewportLeftColumn(fpSpread2.GetActiveColumnViewportIndex(), leftColumn);
    fpSpread2.SetViewportTopRow(fpSpread2.GetActiveRowViewportIndex(), topRow);
}


2. LeftChange 이벤트와 TopChange 이벤트를 활용하는 방법


Left/TopChange 이벤트와 함께, 말씀하신 SetViewportLeftColumn 및 SetViewportTopRow 메서드를 사용하여 원하시는 기능을 구현하실 수 있습니다.


아래 샘플 코드를 참고하여주시기 바랍니다.

fpSpread1.LeftChange += FpSpread1_LeftChange;
fpSpread1.TopChange += FpSpread1_TopChange;

private void FpSpread1_TopChange(object sender, FarPoint.Win.Spread.TopChangeEventArgs e)
{
    fpSpread2.SetViewportTopRow(fpSpread2.GetActiveRowViewportIndex(), e.NewTop);
}

private void FpSpread1_LeftChange(object sender, FarPoint.Win.Spread.LeftChangeEventArgs e)
{
    fpSpread2.SetViewportLeftColumn(fpSpread2.GetActiveColumnViewportIndex(), e.NewLeft);
}


샘플 코드에서는 하나의 스프레드에 대해서만 이벤트를 설정하였으므로, 필요하신 경우 코드를 일부 수정하여(스프레드 이름) 두 스프레드 모두에 이벤트를 설정해주시기 바랍니다.


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


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

WinForms윈폼 Re: 두 개의 시트가 동시에 스크롤 이동

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

페이지 정보

작성자 김혜주 작성일 2023-10-04 11:50 댓글 0건

본문

추가 문의 드립니다.


두 개의 스크롤이 동시에 작동하게 하는 것은 성공하였으나

아래의 이미지와 같이 끝에 도달했을 때 마지막 행이 보이지 않습니다.


e43514134293ca5612de9e5212baeccc_1696387666_8717.png
 

1000번째 행이 보일 수 있게 수정 할 수 있을까요? 

아래의 예시 이미지처럼 되어야합니다.


e43514134293ca5612de9e5212baeccc_1696387744_5016.png
 

댓글목록

등록된 댓글이 없습니다.

WinForms윈폼 Re: 두 개의 시트가 동시에 스크롤 이동

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

페이지 정보

작성자 GCK써니 작성일 2023-10-04 17:13 댓글 0건

본문

첨부파일

김혜주 님, 안녕하세요.

그레이프시티입니다.


저희쪽에서 TopChange 이벤트 및 LeftChage 이벤트를 이용하여 테스트해본 결과, 마지막 행까지 스크롤 바에 가려지지 않고 잘 보여지는 것을 확인하였습니다.

첨부된 샘플 프로젝트를 참고 부탁드립니다.


혹시 첨부해주신 첫번째 이미지와 같은 현상을 저희 쪽에서 재현해볼 수 있는 실행 가능한 샘플 프로젝트 혹은 코드를 공유해주실 수 있으실까요? 공유해주신 정보를 바탕으로 적용가능한 방법이 있는지 확인 후 안내드리겠습니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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