2014-12-17 2 views
0

샘플 코드,Microsoft.Office.Interop.Excel.ColorFormat에 다음과 같은

Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor = System.Drawing.Color.Red; 

반환 오류를 System.Drawing.Color을 할당하는 방법. 암시 적으로 형식을 변환 할 수 없습니다. 하나는 Struct이고 다른 하나는 ColorFormat입니다.

ForeColor.RGB는 난 단지 Color.Red.R, Color.Red.G 및 Color.Red.B에서 3의 int를 얻을 수 지능 유형입니다. ForeColor 속성에 원하는 색상을 지정하는 방법은 무엇입니까?

+0

때문에

Chart.SerialCollection(1).Point(1).Format.Fill.ForeColor.RGB = Color_to_RGB(Color.Red); 

다른 대답에 사용되는 이유 ToArgb()이 작동하지 않습니다 여기에 답변을 찾으십시오 : http://stackoverflow.com/questions/37786008/how-to-convert-from-system-drawing-color-to-excel-colorformat-in-c-change-comm –

+0

ColorTranslator.ToOle 잘 작동합니다. 제안 [여기] (http://stackoverflow.com/) 질문/37786008/system-drawing-color-to-excel-colorformat-in-c-change-comm로 변환하는 방법). – Roman

답변

-1

시도 RGB 재산 ForeColor.RGB

일예

코멘트에 제안으로
Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = System.Drawing.Color.Red.ToArgb(); 
+1

예, 이미 시도했지만 컴파일을 통과 할 수 있지만 색상이 올바르지 않습니다. Color.Red는 다른 색상으로 표시됩니다. RGB와 ARGB가 서로 다른 두 가지 색상 시스템 인 것 같아요. 맞습니까? –

0

ColorTranslator.ToOle

Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = ColorTranslator.ToOle(Color.Red); 

사용 또는, RGB 값 입력 :

Chart.SerialsCollection(1).Point(1).Format.Fill.ForeColor.RGB = ColorTranslator.ToOle(Color.FromArgb(255, 0, 0); 

몇 가지 추가 정보를, 그래서 난 그냥 코멘트를 반복하고 있지 않다 :

ForeColor.RGB은 repr 16 진수로 표시되어 0xBBGGRR (source)입니다. 이 알면, 당신은 다음과 같은 기능을 만들 수 있습니다

public int Color_to_RGB(Color color) { 
    return (color.B << 16) | (color.G << 8) | Color.R; 
} 

사용 :의 진수 표현 당신이 할 수있는 0xAARRGGBB