マウスの操作が行われない場合は 5 秒後に閉じたいフォームがありますが、マウスの操作が行われた場合はフォームを閉じて、操作countdown + 5 seconds
ごとに 5 秒増加させます。
これは私がこれまでに思いついたものです:
int countdown = 5;
System.Timers.Timer timer;
タイマーを開始
timer = new System.Timers.Timer(1000);
timer.AutoReset = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(ProcessTimerEvent);
timer.Start();
行事
private void ProcessTimerEvent(Object obj, System.Timers.ElapsedEventArgs e)
{
--countdown;
if (countdown == 0)
{
timer.Close();
this.Invoke(new Action(() => { this.Close(); }));
}
}
テストのために、フォームの mouseclick イベントを使用してカウントダウンを 5 増やしていますが、フォーム上のラベルまたはその他のコントロールをクリックしてもタイマーが増加しないため、別のイベントに変更する必要があります。
private void NotifierTest_MouseClick(object sender, MouseEventArgs e)
{
countdown += 5;
}
質問
正しい方法でカウンターを増やすことができるカウントダウンを実装していますか?
私は何かを変更する必要がありますか?
私がやったことと何か違うとしたら、どうやってこれをしますか?
マウス クリック キャプチャをどのように処理すればよいですか?
低レベルのフックを使用していますか?
マウスのクリック位置を使用して、それが私の winform にあるかどうかを確認しますか?
その他のオプション
私が現在考えている別のオプションは、マウスがフォーム領域内にあるかどうかをキャプチャし、領域内にない場合はクローズカウントダウンを有効/無効にすることですが、これのためにマウスを操作する方法がわかりません。マウスをどのように操作するかについての上記の質問。