我在谷歌搜索了,让我来显示一个标签在特定时间的方法等几个问题,我发现这一点:C#:哪些允许显示标签在特定时间
public void InfoLabel(string value)
{
if (InvokeRequired)
{
this.Invoke(new Action<string>(InfoLabel), new object[] { value });
return;
}
barStaticItem3.Caption = value;
if (!String.IsNullOrEmpty(value))
{
System.Timers.Timer timer = new System.Timers.Timer(6000) { Enabled = true };
timer.Elapsed += (sender, args) =>
{
this.InfoLabel(string.Empty);
timer.Dispose();
};
}
}
我真的不明白这个方法:
- 为什么我们用:InvokeRequired
?
- 这种方法适用于:this.Invoke()
?
- 这是干什么用的:new Action<string>(InfoLabel)
?
- 为什么我们使用那个标志:=>
?
Yay复制从互联网上粘贴代码。不要将标签文本设置为空,而应将其从表单中删除。否则,最终会在表单上留下大量空的标签,从而堵塞其性能。 – MrFox
@MrFox并非总是如此。首先你假设你正在动态添加标签。也许只有一个状态标签被设置,然后清除并重新设置。这不会导致很多标签。 – Servy
同意,从上下文看起来更像是标签标题改变而不是添加新标签,但我们没有完整的源代码,所以我们可能永远不会知道:) – Charleh