swkn 님, 안녕하세요.
메시어스입니다.
1. 컬럼헤더가 Locked 걸렸을 때도 글자색이나 폰트변경이 가능한지 궁금합니다.
헤더 셀의 BackColor/ForeColor는 레더 렌더링에 의해 정의됩니다.
사용자 정의 컬럼 헤더 렌더러를 정의 및 적용하여, 시트 보호가 설정되었을 때 시트 보호가 설정된 상태일 때의 컬럼헤더 글자색/배경색/폰트 설정이 가능합니다.
아래 샘플 코드를 참고 부탁드립니다.
private void Form1_Load(object sender, EventArgs e)
{
fpSpread1.Sheets[0].VisualStyles = FarPoint.Win.VisualStyles.Off;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].Renderer = new CustomColumnHeaderRenderer();// 컬럼헤더 행에 대한 렌더러를 설정합니다.
fpSpread1.Sheets[0].ColumnHeader.Rows[0].BackColor = Color.Teal;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].ForeColor = Color.Yellow;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].LockBackColor = Color.Gray;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].LockForeColor = Color.Red;
fpSpread1.Sheets[0].ColumnHeader.Rows[0].LockFont = new Font("HY견고딕", 15f);
}
public class CustomColumnHeaderRenderer : FarPoint.Win.Spread.CellType.ColumnHeaderRenderer
{
public override void PaintHeader(Graphics g, Rectangle r, Rectangle rectTextIn, Color backColor, Color foreColor, System.Drawing.Font font, FarPoint.Win.HorizontalAlignment halign, FarPoint.Win.VerticalAlignment valign, bool pressed, bool focus, string text, string textDown, FarPoint.Win.ButtonTextAlign nAlign, FarPoint.Win.TextOrientation textOrientation, bool wordWrap, int shadowSize, Color darkColor, Color lightColor, Image pictUp, Image pictDown, bool bLocked, System.Drawing.Text.HotkeyPrefix prefix, FarPoint.Win.VisualStyles style, bool mouseOver, bool rightToLeft, FarPoint.Win.Spread.Appearance appearance, double textRotationAngle, float zoomFactor)
{
if (bLocked)
{
backColor = appearance.LockBackColor;
foreColor = appearance.LockForeColor;
font = appearance.LockFont;
}
base.PaintHeader(g, r, rectTextIn, backColor, foreColor, font, halign, valign, pressed, focus, text, textDown, nAlign, textOrientation, wordWrap, shadowSize, darkColor, lightColor, pictUp, pictDown, bLocked, prefix, style, mouseOver, rightToLeft, appearance, textRotationAngle, zoomFactor);
}
}
2. legacy behavior가 none인 경우와 style인 경우의 차이가 뭔지도 궁금합니다.
Spread.NET에서는 이전 버전과의 호환성을 위하여 LegacyBehaviors 옵션을 제공합니다. LegacyBehaviors.Style을 적용하였을 때, FpSpread의 모든 스타일 기본 설정 및 동작이 이전 버전과 같이 동작합니다.
일례로, LegacyBehaviors.Style 설정이 꺼져있을 때(FlatStyle을 사용할 때)에는 ColumnHeader.DefaultStyle 속성을 지원하지 않습니다. 이는 Excel-like한 스타일 시스템과 호환되지 않기때문입니다. 그러나 LegacyBehaviors.Style이 설정되어있을 때에는 ColumnHeader.DefaultStyle 속성을 지원합니다.
LegacyBehaviors.Style이 설정되어있을 때와 아닐 때의 차이는, 사용하는 버전에 따라 다를 수 있기 때문에 모든 차이점에 대한 정확한 설명이 어려운 점 양해 부탁드립니다.
LegacyBehaviors 옵션에는 Stlye 뿐 아니라 여러 옵션이 존재합니다.
아래 링크된 페이지에서 각 옵션에 대한 설명을 확인하실 수 있습니다.
Spread WinForms V16 | LegacyBehaviors 열거형
Spread WinForms V16 | LegacyBehaviors 속성
감사합니다.
메시어스 드림