Reputation: 39
I am trying to disable all buttons I am using after a time period of inactivity using the timer from toolbox. I can currently get it to work by just disabling the relevant buttons in
private void timer1_Tick(object sender, EventArgs e)
but this disables in ten seconds regardless of activity or inactivity. Is it possible for the timer to work only after 10 seconds of no activity?
Here is the code I am using.
private void timer1_Tick(object sender, EventArgs e) {
button1.Enabled = false;
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
button7.Enabled = false;
button8.Enabled = false;
button9.Enabled = false;
button10.Enabled = false;
button11.Enabled = false;
button12.Enabled = false;
button13.Enabled = true;
button14.Enabled = true;
button14.Visible = false;
button15.Enabled = true;
button15.Visible = false;
button17.Enabled = false;
button17.Visible = false;
button18.Visible = false;
button19.Visible = false;
button20.Enabled = false;
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
checkBox1.Visible = false;
checkBox2.Visible = false;
label15.Visible = false;
label16.Visible = false;
label21.Visible = false;
}
Any help would be greatly appreciated.
Upvotes: 0
Views: 602
Reputation: 4658
Just add the following event to each button that might be clicked and be counted as 'active':
public void ResetTimer(object sender, EventArgs e)
{
timer.Stop();
timer.Start();
}
...
button1.Click += ResetTimer;
The Timer
in Winforms doesn't have a Reset
method (nor does any of the other timer classes), so you'll have to stop it first and then start it again.
Upvotes: 3
Reputation: 1717
Solution 1:
Reset Time every time user click any button.
Solution 2: ( Not Recommended )
Have a global variable LastActiveTime, Every-time somebody clicks any button :
LastActiveTime = DateTime.Now()
Parallel running Timer/Thread will check every second if inactive time is more than 10 second and will do accordingly.
Upvotes: 0