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

AllowColumnMove > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 AllowColumnMove

페이지 정보

작성자 tomleee 작성일 2023-12-07 05:03 조회 69회 댓글 0건
제품 버전 : 16.2.20231.0

본문

프로그램 실행후에 AllowColumnMove를 통해 드래그해서 옮긴 column 순서를 저장하는 기능이 있는지 여쭤봅니다.

현재는 드래그해서 옮긴 column 순서가 프로그램 종료시 다시 리셋 됩니다.

프로그램 내에서 수정된 column 정보들(column 순서, 넓이 등)이 저장되는 방법이 궁금합니다.

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

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: AllowColumnMove

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

페이지 정보

작성자 MESCIUS써니 작성일 2023-12-08 16:48 댓글 0건

본문

tomleee 님, 안녕하세요.

메시어스입니다.


아쉽게도, 프로그램 실행 중 수정된 컬럼의 정보들을 프로그램 종료 및 재실행 시 사용할 수 있도록 저장하는 기능은 Spread.NET에서 지원하지 않는 기능입니다.


다만, 데이터바인딩 기능을 사용하고 계시다면, 컬럼의 DataFields 속성과 Winforms의 settings를 함께 사용하여, 말씀하신 동작과 유사하게 구현해볼 수 있을 것으로 보여집니다.


예제를 전달 드리오니, 개발에 참고하여주시기 바랍니다.

- 열 및 필드 바인딩 사용자 정의 


1. 시트에 DataSource를 설정하면서, 각 컬럼별 DataField를 설정합니다.

// 샘플 DataTable 설정
DataTable dt = new DataTable();
dt.Columns.Add("ColumnA");
dt.Columns.Add("ColumnB");
dt.Columns.Add("ColumnC");
dt.Rows.Add("A", "B", "C");

// 데이터 소스를 설정합니다.
fpSpread1.Sheets[0].DataSource = dt;

// 컬럼 이동을 허용합니다.
fpSpread1.AllowColumnMove = true;

// 각 컬럼별 DataField를 설정합니다.
fpSpread1.Sheets[0].Columns[0].DataField = "ColumnA";
fpSpread1.Sheets[0].Columns[1].DataField = "ColumnB";
fpSpread1.Sheets[0].Columns[2].DataField = "ColumnC";


2. Winforms Properties의 settings를 이용하면, 응용 프로그램을 종료했다가 재실행했을 때 유지되어야 하는 세팅 값들을 저장할 수 있습니다.

- Microsoft 도움말 문서 | how-to-write-user-settings-at-run-time-with-csharp


3. 폼이 종료되거나 특정 이벤트가 발생했을 때, 각 컬럼의 DataField 값을 settings에 저장합니다. DataField는 String형이기 때문에 예제에서는 StringCellection형 변수를 사용하였습니다.

Properties.Settings.Default.dataFieldCollection.Clear();

System.Collections.Specialized.StringCollection dataFieldCollection = new System.Collections.Specialized.StringCollection();
for (int index=0; index < fpSpread1.Sheets[0].ColumnCount; index++)
{   
  dataFieldCollection.Add(fpSpread1.Sheets[0].Columns[index].DataField);
}

Properties.Settings.Default.dataFieldCollection = dataFieldCollection;
Properties.Settings.Default.Save();


4. Form이 Load될 때 저장한 설정 값들을 가지고 와서 다시 설정하고, 데이터 소스를 설정합니다.

for (int index = 0; index < Properties.Settings.Default.dataFieldCollection.Count; index++)
{
    fpSpread1.Sheets[0].Columns[index].DataField = Properties.Settings.Default.dataFieldCollection[index];
}
fpSpread1.Sheets[0].DataSource = dt;


공식블로그는 아니나, 위 단계를 수행할 때 참고할 수 있는 블로그 게시글을 공유드리니, 참고용으로 봐주시기 바랍니다.

- [C#] 설정 저장하고 재실행 시 저장한 값 불러오기


감사합니다.

메시어스 드림


댓글목록

등록된 댓글이 없습니다.

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