2012-04-05 1 views
0

저는 C#, Winforms 및 Compact Framework를 처음 접했지만 이벤트 시스템을 완전히 신경 쓰지 않았습니다.양식 안의 자식이 변경 (채색)되면 이벤트가 시작됩니까?

최상위 폼에 하나의 이벤트 처리기를 추가하는 방법을 찾고 있는데, 그 중 어떤 자식 유형이든지 (다시 그려지는) 그들은. 또한 어린이 자신에게 코드를 추가 할 필요가 없다는 것도 중요합니다. 의사에서

그것은이 작업을 수행하려면 어떤 방법이 있나요이

TopMostForm { 
    anyChildWasReDrawn() { 
     dostuff(); 
    } 
} 

처럼 보일 수있는 것?

+0

과거 시제 "was"가 문제입니다. 분명히 원하는 것을 성취 할 수있는 더 좋은 방법이 있습니다. 왜 당신이 원하는 것을 원하는지 분명하지 않습니다. –

+0

대부분의 .NET Compact Framework 컨트롤은 Paint 이벤트를 발생시키지 않습니다. 만약 당신이 * 정말로 * 이것을 필요로한다면 OpenNetCF와 같은 것을 사용하여 내가 생각하는 메시지 루프를 활용해야 할 것이다. – tcarvin

답변

1

자녀의 페인트 처리기를 살펴보십시오. 예를 들어, 같은 것을 할 것이다 당신을 양식 가장 상단에 :

// each child will call the same method when any of them are redrawn 
myChild1.Paint += myChildren_Paint; 
myChild2.Paint += myChildren_Paint; 
mySomeOtherChild.Paint += myChildren_Paint 

실제 핸들러 자체가 다음과 같이 보일 것입니다 :

void myChildren_Paint(object sender, PaintEventArgs e) 
{ 
    dostuff(); 
} 

참고이 하나의 핸들러에 각 자식 점.

관련 문제