초록거북 님, 안녕하세요.
메시어스입니다.
질문2에 대한 추가 안내드립니다.
한 개의 셀 안에 이미지를 포함하여 글자와 같이 표현하는 방법으로 다음의 두 가지 방법이 있습니다.
1. ButtonCellType을 사용하여 유사한 동작을 수행할 수 있습니다.
ButtonCellType cellType = new ButtonCellType();
cellType.Picture = Image.FromFile("c:\\Downloads\\Image.png");
cellType.PictureZoomEffect = true;
cellType.TextAlign = ButtonTextAlign.TextRightPictLeft;
cellType.Text = "Button";
fpSpread1.ActiveSheet.Cells[0, 0].CellType = cellType;
fpSpread1.ActiveSheet.Cells[0, 0].VerticalAlignment = CellVerticalAlignment.Center;
2. 버튼 모양과 동작을 원치 않으시는 경우, 사용자 정의 셀 타입을 생성하고, 기대에 따라 텍스트와 이미지를 그릴 수 있습니다. 다음은 간단한 예시입니다.
ImageTextCellType cellType = new ImageTextCellType();
cellType.Picture = Image.FromFile("c:\\Downloads\\Image.png");
cellType.Picture = Image.FromFile(imagePath);
fpSpread1.ActiveSheet.Cells[0, 0].CellType = cellType;
fpSpread1.ActiveSheet.Cells[0, 0].Text = "Text";
fpSpread1.ActiveSheet.Cells[0, 0].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
public class ImageTextCellType : FarPoint.Win.Spread.CellType.GeneralCellType
{
public Image Picture { get; set; }
public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
{
g.DrawImage(Picture, new Rectangle(r.X, r.Y + (r.Height - 16) / 2, 16, 16));
base.PaintCell(g, new Rectangle(r.X + 16, r.Y, r.Width - 16, r.Height), appearance, value, isSelected, isLocked, zoomFactor);
}
}
각각의 샘플 코드를 참고 및 수정하여 사용해보시기 바랍니다.
감사합니다.
메시어스 드림