2017-02-06 9 views
0

탭 컨트롤이 포함 된 Windows Form 프로그램이 있습니다. 문제의 탭에는 사용자 컨트롤이 포함되어 있으며이 컨트롤에는 그림 상자가 있습니다. 런타임에 탭을 선택하면 어떤 이벤트가 그림 상자에 그려지는지 알 수 없습니다. 내가 찾을 수있는 모든 이벤트를 시도하고, 나는 그들을 통해 단계별로 내가 원하는 것을 그리는 볼 수 있지만 디버거에서 그림 상자를 지우려면 '계속'을 클릭하면 지 웁니다.Windows Forms 프로그램에서 탭 컨트롤의 그림 상자에 페인트하기 위해 어떤 이벤트를 캡처 할 수 있습니까?

로드가 완료된 후 원하는 것을 그려 넣기 위해 '새로 고침'버튼을 넣는 일이 생겼지 만, 뭔가 빠졌다고 확신합니다.

무엇이 누락 되었습니까?

+0

PictureBox는 Control 클래스에서 파생되므로 [페인트 이벤트] (https://msdn.microsoft.com/en-us/library/system.windows.forms.control.paint() v = vs.110) .aspx)를 사용하여 그림을 그립니다. – Icemanind

+0

감사합니다. 방금 해봤 어. 한 단계 씩 진행하면 그릴 수 있지만 '계속'을 클릭하면 그림 상자가 지워집니다. 마치 다른 사건이 일어나고있는 것 같습니다. –

+0

페인트 이벤트에 코드를 게시 할 수 있습니까? – Icemanind

답변

1

이벤트 핸들러에 전달 된 그래픽 객체를 사용해야합니다. 이렇게 :

public void UserControl_Paint(object sender, PaintEventArgs e) 
{ 
    e.Graphics.Clear(Color.White); 
    e.Graphics.DrawArc(Pens.Blue, 50, 50, 14, 14, 0, 360); 
} 

또한 그래픽 객체를 처분하려는 경우가 있습니다. 이러지 마. 생성하지 않은 객체는 절대로 처분하지 마십시오.