2012-04-05 21 views
0

私はC#、Winforms、Compact Frameworkの新機能はまだありませんし、それでもイベントシステムを心配することはありません。フォーム内の子が変更された(描画された)ときにイベントが発生しますか?

私は一番上のフォームに1つのイベントハンドラを追加する方法を探しています。子孫が描画されたときに呼び出されます。彼らです。子ども自身にコードを追加する必要はありません。これを行うにはどのような方法があります

擬似コードでは、この

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

ようになりますでしょうか?

+0

過去の時制「だった」が問題です。確かに、あなたが望むものを達成するためのよりよい方法があります。あなたが望むものがなぜ必要なのかは分かりません。 –

+0

ほとんどの.NET Compact Frameworkコントロールは、ペイントイベントを発生させません。もしあなたが本当にこれを必要とするなら、あなたはOpenNetCFのようなものを使って、私が思うメッセージループを利用する必要があります。 – tcarvin

答えて

1

お子様のペイントハンドラの取り扱いについて調べてください。たとえば、あなたの一番上にあなたがこのような何かをするだろうフォーム:

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

(注)この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 

実際のハンドラ自体は、次のようになります。

関連する問題