そのコントロールの Load イベントの下にアイドル イベントを登録したユーザー コントロールがあります。
Control_Load(object sender, System.EventArgs e)
{
Application.Idle += new EventHandler(Application_Idle);
}
アプリケーションが処理を終了してアイドル状態に達したときにこれがトリガーされることはわかっています。これの意味は?
たとえば、このコードを含むフォームを作成しました
int counter = 0;
private void Form1_Idle(object sender, System.EventArgs e)
{
counter++;
label1.Text = counter.ToString();
}
private void Form1_Load(object sender, System.EventArgs e)
{
Application.Idle +=new EventHandler(Form1_Idle);
}
次に、特定の操作を行うフォームでいくつかのブテンを作成します。アイドル状態ではないため、作成したボタンを介して操作を行っているときに、理解されているラベルカウンターが増加することはありませんが、今起こっていることは、いくつかの操作が行われていることです。ボタンをクリックすると、フォームのタイトルバーを押してフォームを移動した場合を除いて、ラベルカウンターが増加します。
もう1つ、これがメインアプリケーションウィンドウであっても、ウィンドウを閉じるときにこれらのイベントハンドラーをデタッチする必要があります。もしそうなら、disposeメソッドでそれで十分ですか?
protected override void Dispose(bool disposing)
更新 キーボードで「LARSEN」と言うテキストを押している場合、アルファベット「L」と「A」を押す間にアイドルイベントが発生しますか?