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

FpSpread ButtonCellType Hover 시에 원하는 색으로 변경 가능할까요? > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 FpSpread ButtonCellType Hover 시에 원하는 색으로 변경 가능할까요?

페이지 정보

작성자 편도준 작성일 2022-11-02 09:17 조회 1,140회 댓글 0건
제품 버전 : Spread.NET_V12_12.0.20193.0
컨트롤 이름 : VisualStyleElement

본문

안녕하세요 항상 제품 유용하게 사용하고 있습니다.

spread 사용 중 궁금한 점이 생겨 일전에 질문글을 남긴 적이 있습니다.

사용 중 질문할 사항이 추가로 생겨 질문드립니다. 


private void Form1_Load(object sender, EventArgs e)
{
    HoverButtonCellType buttonCt = new HoverButtonCellType();
    fpSpread1.ActiveSheet.Cells[2, 2].CellType = buttonCt;
 
}
public class HoverButtonCellType : FarPoint.Win.Spread.CellType.ButtonCellType
{
    public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
    {
        if (appearance.MouseOver)
        {
            System.Windows.Forms.VisualStyles.VisualStyleElement element = System.Windows.Forms.VisualStyles.VisualStyleElement.Button.PushButton.Hot;
            if (System.Windows.Forms.VisualStyles.VisualStyleRenderer.IsElementDefined(element))
            {
                FarPoint.Win.FpVisualStyleRenderer vsr = new FarPoint.Win.FpVisualStyleRenderer(element);
                vsr.DrawBackground(g, r);
                return;
            }
        }
 
        base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
    }
}


지난번에 해당 코드로 fpSpread의 셀타입을 버튼으로 변경 후 MouseHover 시에 Focus되는 방법을 도움 받았습니다.
혹시 추가로 마우스를 버튼으로 올려놓았을 시에 버튼 색이나 버튼 안 폰트 색을 변경하고 싶은데 가능한지 여쭤봅니다.

항상 성실한 답변 감사합니다.

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

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: FpSpread ButtonCellType Hover 시에 원하는 색으로 변경 가능할까요?

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

페이지 정보

작성자 GCK써니 작성일 2022-11-02 16:15 댓글 2건

본문

편도준 님, 안녕하세요.

그레이프시티입니다.


1. 버튼 텍스트 색상 설정

마우스를 버튼 셀에 올렸을 때, 특정 색상으로 텍스트가 표시되도록 설정하실 수 있습니다.

아래 샘플 코드를 개발에 참고 부탁드리며, 샘플코드의 TextRender.DrawText() 메소드의 다섯번째 인자 값을 원하시는 색상으로 변경하여 사용해주시기 바랍니다.

public class HoverButtonCellType : FarPoint.Win.Spread.CellType.ButtonCellType
{
    public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
    {
        if (appearance.MouseOver)
        {
            VisualStyleElement element = VisualStyleElement.Button.PushButton.Hot;
            if (VisualStyleRenderer.IsElementDefined(element))
            {
                FpVisualStyleRenderer vsr = new FpVisualStyleRenderer(element);
                vsr.DrawBackground(g, r);

                //use same logic as VerticalAlignment for HorizontalAlignment if needed. 
                //sample use Horizontal Center only
                TextFormatFlags formatFlags = TextFormatFlags.HorizontalCenter;
                switch (appearance.VerticalAlignment)
                {
                    case CellVerticalAlignment.Bottom:
                        formatFlags |= TextFormatFlags.Bottom;
                        break;
                    case CellVerticalAlignment.Top:
                        formatFlags |= TextFormatFlags.Top;
                        break;
                    default:
                        formatFlags |= TextFormatFlags.VerticalCenter;
                        break;
                }

                int shadowSize = ShadowSize;
                r.Height -= shadowSize * 3;
                TextRenderer.DrawText(g, Text, appearance.Font, r, Color.Red, formatFlags);
                return;
            }
        }

        base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
    }
}


2. 버튼 배경 색상 설정

본사 개발팀으로 확인 결과, 마우스를 버튼에 올렸을 때의 버튼 색상은 변경할 수 없다고 합니다.

원하시는 도움을 드리지 못해 죄송합니다.


다른 궁금한 점이 생기면, 문의 주시기 바랍니다.

감사합니다.

그레이프시티 드림

댓글목록

편도준님의 댓글

편도준 작성일

덕분에 해결되었습니다. 항상 감사합니다. ^^

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