트레이닝 센터

셀 유형

동적 셀 유형

Spread는 다양한 셀 유형을 제공합니다. AnimatedCellType은 ImageCellType 셀 유형을 이어받습니다. 본문에서는 동적 이미지 셀 유형의 구현법을 소개합니다. 동적 이미지를 로드하려면 사용자 지정 셀 유형을 생성해야 합니다.


1. 우선 PaintCell()을 사용해 셀을 그립니다.

2. OnFrameChanged()를 사용해 동적 이미지를 새로 고칩니다.


여기서는 .Net Framework’s ImageAnimator 를 사용하며 이미지를 초당 한 번 변화시킵니다.
OnFrameChanged()를 사용해 동적 이미지를 새로 고칩니다.

public override void PaintCell(Graphics g, Rectangle r, 
FarPoint.Win.Spread.Appearance appearance, object value, 
bool isSelected, bool isLocked, float zoomFactor)
 {
   if (currentImage == null)
   {
     base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
     StartAnimate(value);
   }
   else lock (currentImage)
       base.PaintCell(g, r, appearance, currentImage, 
isSelected, isLocked, zoomFactor);
 }

OnFrameChanged()함수

void OnFrameChanged(object sender, EventArgs e)
 {
   lock (currentImage)
     ImageAnimator.UpdateFrames(currentImage);
   int rv = sheet.FpSpread.GetRowViewportCount();
   int cv = sheet.FpSpread.GetColumnViewportCount();
   Rectangle spreadRect = sheet.FpSpread.Bounds;
   for (int r = -1; r < rv; r++)
     for (int c = -1; c < cv; c++)
     {
       Rectangle rect = sheet.FpSpread.GetCellRectangle(r, c, rowIndex, columnIndex);
       rect.Intersect(spreadRect);
       if (!rect.IsEmpty)
         sheet.FpSpread.Invalidate();
     }
 }

샘플 다운로드



한국 그레이프시티 공식카페에서 기술지원을 받으실 수 있습니다.
이메일을 통해서도 기술지원을 받으실 수 있습니다.