정재원 님, 안녕하세요.
메시어스입니다.
문의하신 내용은, Spread.NET V10으로 개발한 내용을 V16으로 마이그레이션한 경우가 아닌 Spread.NET V16을 이용하여 새 프로젝트를 진행하실 때의 케이스로 생각이 됩니다.
Spread.NET V10과 V16 사이에는 계산 모델 및 스타일 모델 등에서 다양한 변화가 있습니다. 이에 V10에서 적용했던 방법이 V16에서는 동일하게 동작하지 않을 수 있는 점, 제품 사용 시 참고 부탁드립니다.
문의하신 사항에 대하여 다음과 같이 안내 드립니다.
#1. 특정 컬럼만 수정이 되지 않도록 설정하는 방법
Spread.NET V16에서, 기본적으로 모든 컬럼의 Locked 속성 값이 true로 설정되어있습니다. 이는 Spread.NET V10에서 모든 컬럼의 기본 Locked 속성 값이 False로 설정되어있는 것과는 차이가 있는 부분입니다.
따라서 Spread.NET V16에서 특정 컬럼 내 셀만 수정이 되지 않도록 잠금을 설정하고 싶으시다면, 아래 순서에 따라 진행해주시기 바랍니다.
- 시트 내 모든 컬럼의 Locked 속성을 False로 설정합니다.
- 수정 불가하게 하고 싶은 컬럼의 Locked 속성을 True로 설정합니다.
- 해당 시트의 Protect 속성을 True로 설정합니다.
3)에서 시트 잠금을 설정했을 때, 컬럼 헤더가 음영처리 되는 것을 원치 않으신다면, 아래 링크된 게시글에서 안내하는 방법을 적용해주시기 바랍니다.
또는 쌍둥이아빠 님께서 댓글로 공유해주신 방법과 같이, 아래 코드를 적용해보실 수 있습니다.
fpSpread1.Sheets[0].Protect = true;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].Locked = false;
fpSpread1.Sheets[0].RowHeader.Columns[0].Locked = false;
#2. 짝수 행의 배경색 설정하는 방법
시트 스킨 기능 중 사용자정의의 EvenRowBackColor 기능은 구 스타일 모델인 Composite Style에서 지원하는 기능입니다. 이 기능을 사용하고 싶은 경우 스프레드의 LegacyBehaviors.Style을 활성화해야합니다. 이 경우 구 스타일 모델이 동작합니다.
해당 기능을 사용하지 않고 새 스타일 모델인 Flat Style을 사용하고자 하는 경우, 아래 샘플 코드와 같이 AlternatingRows 기능을 활용해주시기 바랍니다.
// 시트 내 데이터 영역의 교대 행에 대한 GrapeCity.Spreadsheet.IAlternatingStyles 개체를 가져옵니다.
GrapeCity.Spreadsheet.IAlternatingStyles rowAltStyles = fpSpread1.AsWorkbook().ActiveSheet.Styles.AlternatingRows;
// Count 속성을 교대로 반복되길 원하는 행 패턴의 수로 설정합니다.
rowAltStyles.Count = 2;
// 첫 번째 행은 기본 설정을 사용합니다.
// 두 번째 행은 연한 파란색 배경을 사용합니다.
rowAltStyles[1].Interior.Color = GrapeCity.Spreadsheet.Color.FromArgb(224, 255, 255);
아래 링크된 게시글을 통해 보다 자세한 내용을 확인하실 수 있습니다.
#3 스프레드에 데이터 테이블 바인딩한 후, 버튼 클릭 시 셀의 텍스트가 바뀌게 설정했는데, 텍스트 변경이 안되는 현상
말씀해주신 현상이 재현되어 본사 측으로 확인 중입니다. 관련 내용이 업데이트 되는 대로 안내드리겠습니다.
감사합니다.
메시어스 드림