如何安排消息弹出窗口并仅显示最后一条消息?

mss*_*ssb 0 .net c# timer

我创建以下表单,然后单击3个按钮(随机).单击按钮后,必须在单击3秒后显示相关消息.但是,如果我同时点击了另一个按钮,则必须显示该按钮的相关消息,并且必须取消队列中的上一条消息.

例如,如果我button1在11.30.00 点击,则相关消息应仅在11.30.03弹出,如"你点击:1秒前1秒".但是如果我button2在11.30.03之前点击另一个,比如说在11.30.02那么相关的消息应该在11.30.05弹出,比如"你点击:3秒之前的2",并且必须取消预定于11.30.03的消息.

这是我的代码:

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");
}
Run Code Online (Sandbox Code Playgroud)

Ria*_*Ria 5

设置按钮Tag:

button1.Tag = 1;
button2.Tag = 2;
button3.Tag = 3;
Run Code Online (Sandbox Code Playgroud)

然后设置Click事件:

button1.Click += button_Click;
button2.Click += button_Click;
button3.Click += button_Click;
Run Code Online (Sandbox Code Playgroud)

Click活动上:

private void button_Click(object sender, EventArgs e)
{
    signal = (int) ((Button))sender.Tag;
    displayMessage(signal);
}
Run Code Online (Sandbox Code Playgroud)