2009-09-17 4 views
0

이전에이 코드를 사용했고 완벽하게 작동했습니다. 내 창 형식 중 하나에서 동일한 을 사용하면 양식의 색상이 변경되지 않습니다.C에서 페인트 이벤트를 사용할 때의 문제점 #

페이지가로드 된 후 양식의 기본 색상이 표시됩니다. 하지만 아래 코드를 디버깅하려고하면 폼의 색상이 완벽하게 바뀝니다. 문제는 코드의 마지막 줄을 실행 한 후 양식의 색이 기본 색으로 돌아갑니다.

내가 누락 된 항목이 있습니까?

양식은 Windows 작업 표시 줄처럼 보이며 하나의 탭 컨트롤이 있습니다.

private void TaskBar_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics mGraphics = e.Graphics; 
    Pen pen1 = new Pen(Color.FromArgb(96, 155, 173), 1); 

    Rectangle Area1 = new Rectangle(0, 0, this.Width - 2, this.Height - 2); 
    LinearGradientBrush LGB = new LinearGradientBrush(Area1, 
     Color.FromArgb(96, 155, 173), 
     Color.FromArgb(245, 251, 251), 
     LinearGradientMode.Vertical); 
    mGraphics.FillRectangle(LGB, Area1); 
    mGraphics.DrawRectangle(pen1, Area1); 
} 
+0

귀하의 문제와 관련이 없지만 LinearGradientBrush 및 펜 –

+0

@Mitch를 폐기해야합니다 (사용 문 사용). 이미 Class (System.Drawing.Drawing2D)를 사용 중입니다. – Anuya

+0

Mitch는 사용하는 것이 무엇인지 생각합니다. 키워드는 (...) {...}을 사용하여 펜과 브러시 인스턴스를 자동으로 처리합니다. – cedrou

답변

1

여기에 대해서는별로 많지 않습니다. 이 처리기는 무엇에 붙어 있습니까? 폼의 Paint 이벤트? 그렇다면 핸들러에 연결하는 대신 OnPaint()를 재정의해야합니다. 내 생각 엔 다른 방법으로도 그림을 그리는 것입니다. 그걸 추적해야 해. 더 많은 코드가 없으면 여기에있는 누구나 당신을 도울 수 있습니다. 죄송합니다.

관련 문제