I create following form and I click 3 buttons (randomly). After I click a button, it must show a related message after 3 seconds from clicking it. But if I had clicked another button in the meanwhile, then the related message of that button has to be shown and the previous message in the queue has to be canceled.
As an example, if I click button1 at 11.30.00, then related message should pop up only at 11.30.03 like “You clicked : 1 before 3 Seconds”. But if I click another button2 before the 11.30.03, say at 11.30.02 then related message should pop up at 11.30.05 like “You clicked : 2 before 3 Seconds” and the message scheduled for 11.30.03 has to be canceled.
This is my code:
private int signal = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
signal = 1;
displayMessage(signal);
}
private void button2_Click(object sender, EventArgs e)
{
signal = 2;
displayMessage(signal);
}
private void button3_Click(object sender, EventArgs e)
{
signal = 3;
displayMessage(signal);
}
private void displayMessage(int number)
{
MessageBox.Show("You clicked : "+number+ "before 3 Seconds");
}
Start a timer. Keep changing signal value according to button click, and when time elapsed is equal to 3 seconds, show up the messagebox from tick event. Set the timer interval according to your need and that will be reflected in the “related message”.