2011-03-29 4 views
-1

나는 내 양식에 뭔가를 그린그래픽 및 페인트 이벤트

그러나 양식을 최소화하고 복원 한 후, 양식이 정리됩니다. 문제는 무엇이 될 수 있습니까? 그리고이 코드

가 잘못 : (JIT는 말한다 :

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    grForm = e.Graphics; 
} 

grForm의 경계 클리핑이 제로보다 너무 큰이기 때문에.

+1

좀 더 구체적으로 알려주시겠습니까? –

+0

내가 최소화 할 때 그 양식을 지우지 않아도 되나요? –

+0

JIT가 말하는 것은 무엇입니까? – gideon

답변

1

Paint 이벤트에서 가져온 e.Graphics 객체를 저장할 수 없습니다. Paint 이벤트가 실행되는 동안에 만 유효하며, 그 후에 바로 처리됩니다. 폼의 CreateGraphics() 메서드를 사용하면 폼이 다시 그려지기 직전에 즉시 지워집니다. 예를 들어 최소화하고 복원 할 때.

Paint 이벤트를 다시 실행하려면 양식의 Invalidate() 메서드를 사용해야합니다. 그리고 그릴 필요가있는 것을 그립니다. 드로잉을 영구적으로 유지하려면 비트 맵을 그려야합니다. Paint 이벤트에서 e.Graphics.DrawImage()를 사용하여 비트 맵을 그립니다. 이것은 최선의 방법은 아니며 필요할 때마다 다시 그리는 것이 가장 좋습니다.