C#如何使用标签上的计时器?
我有一个弹出的标签,当用户单击复制按钮时,它可以使用应用程序右下角的标签进行复制。但我希望文本在2秒左右后消失。如果再次单击“复制”,请返回,这是我的复制按钮代码:C#如何使用标签上的计时器?,c#,timer,label,C#,Timer,Label,我有一个弹出的标签,当用户单击复制按钮时,它可以使用应用程序右下角的标签进行复制。但我希望文本在2秒左右后消失。如果再次单击“复制”,请返回,这是我的复制按钮代码: private void copyBtn_Click(object sender, EventArgs e) { labelCopied.Text = "Copied to Clipboard!"; Clipboard.SetText(btcTxtBox.Text);
private void copyBtn_Click(object sender, EventArgs e)
{
labelCopied.Text = "Copied to Clipboard!";
Clipboard.SetText(btcTxtBox.Text);
SystemSounds.Hand.Play();
}
我不知道labelCopied.Text.Remove(0);将清除标签,但我不知道如何使用计时器实现它。为此,请使用
计时器:
private void copyBtn_Click(object sender, EventArgs e)
{
labelCopied.Text = "Copied to Clipboard!";
Clipboard.SetText(btcTxtBox.Text);
SystemSounds.Hand.Play();
Timer t = new Timer();
t.Interval = 2000; //2000 milliseconds = 2 seconds
t.Tick += (a,b) =>
{
labelCopied.Text = string.Empty;
t.Stop();
};
t.Start();
}
编辑
Task.Delay
在内部使用计时器。因此,如果您不介意最小的性能开销,Task.Delay
是一个不错的选择。另外,Task.Delay
更便于携带,因为Timer
是特定于WinForms
的(在WPF
中,您将使用dispatchermer
)
为此使用计时器
:
private void copyBtn_Click(object sender, EventArgs e)
{
labelCopied.Text = "Copied to Clipboard!";
Clipboard.SetText(btcTxtBox.Text);
SystemSounds.Hand.Play();
Timer t = new Timer();
t.Interval = 2000; //2000 milliseconds = 2 seconds
t.Tick += (a,b) =>
{
labelCopied.Text = string.Empty;
t.Stop();
};
t.Start();
}
编辑
Task.Delay
在内部使用计时器。因此,如果您不介意最小的性能开销,Task.Delay
是一个不错的选择。另外,Task.Delay
更便于携带,因为Timer
是特定于WinForms
的(在WPF
中,您将使用dispatchermer
)
假设使用WinForms,请与一起使用,如下所示:
private async void copyBtn_Click(object sender, EventArgs e)
{
labelCopied.Text = "Copied to Clipboard!";
Clipboard.SetText(btcTxtBox.Text);
SystemSounds.Hand.Play();
await Task.Delay(2000);
labelCopied.Text = "";
}
假设使用WinForms,请与一起使用,如下所示:
private async void copyBtn_Click(object sender, EventArgs e)
{
labelCopied.Text = "Copied to Clipboard!";
Clipboard.SetText(btcTxtBox.Text);
SystemSounds.Hand.Play();
await Task.Delay(2000);
labelCopied.Text = "";
}
谢谢你,你推荐哪一种是WinForms Natural。计时器或任务。延迟?任务。延迟
在内部使用计时器
。因此,如果您不介意最小的性能开销,Task.Delay
是一个不错的选择。另外,Task.Delay
更具可移植性,因为Timer
是特定于WinForms
的(在WPF
中,您会使用dispatchermer
)谢谢,这比线程睡眠暂停应用程序要好得多。谢谢,您会推荐哪个是WinForms呢。计时器或任务。延迟?任务。延迟
在内部使用计时器
。因此,如果您不介意最小的性能开销,Task.Delay
是一个不错的选择。另外,Task.Delay
更具可移植性,因为Timer
是特定于WinForms
的(在WPF
中,您将使用dispatchermer
),谢谢,这比线程睡眠暂停应用程序要好得多。