私はpanel
のC#WinFormsアプリケーションを持っています。パネルにはUserControl
がロードされ、UserControl
にはDataGridView
が格納されます。私UserControl
でC# - イベントハンドラが再び呼び出されたときにタイマを再起動します。
、私はonScrolling
が公に宣言EventHandler
財産であるDataGrid
private void palletsGrid_MouseDown(object sender, MouseEventArgs e)
{
try
{
EventHandler handler = onScrolling;
if (handler != null)
{
handler(this, new EventArgs());
}
}
Catch (Exception ex)
{
Logging.LogWarn("Mouse down error: ", ex);
}
}
上MouseDown
イベントのイベントハンドラを持っています。
メインフォームでEventHandler
を処理しています。タイマーは5秒ごとに自動更新されるためです。だから私は、このイベント(スクロールしてDataGridView
)が発生したときにリフレッシュを止めるために知るために、メインフォームが必要です。ユーザーがDataGridView
をスクロールしたとき、これはどういう
private void userControl_ScrollEvent(object sender, EventArgs e)
{
try
{
timer1.Stop();
Timer pauseTimer = new Timer();
pauseTimer.Interval = 60000;
pauseTimer.Start();
pauseTimer.Tick += new System.EventHandler(pauseTimer_Tick);
}
catch (Exception ex)
{
Logging.LogFatal("Scroll event capture error: ", ex);
}
}
は、メインフォームは、60秒のための自動更新を停止します。私のメインフォームで
が、これは私がやっているものです。 60秒に一度pauseTimer
のティックを入力すると、refreshTimer
は通常のように再開します。
問題:
私は画面を2回タッチすると知っている私のフォームを必要としています。のように、私が今画面に触れると、タイマーが始まります。 60秒間リフレッシュしません。私がもう一度触れると、60秒は2回目のタッチから始める必要があります。最初のものではありません。だから私が画面に触れるたびに、pauseTimer
を再起動する必要があります。
ユーザーがスクロールするたびにタイマーを作成しています。悪いアイデア。タイマー1のようなメンバーとしてタイマーを作ってみてください。それで簡単に再始動することもできます。 – FrankM
うーん..いいところ@FrankM。私はそれをしないように私のアプリケーションを変更します。 –