嗯,我正在编写一个有关字符串、标签、链接标签、类等的扩展/方法文件。
但是,我遇到了一个问题。我有一个showMessage()
方法,它可以更改标签的文本,运行正常。但是我决定让它在线程执行中工作,于是我这样做:
namespace LabelExtensions
{
public static class LabelExtensionsClass
{
private delegate void UpdateState();
public static void ShowMessage(this Label label, string text)
{
if (label.InvokeRequired)
{
label.Invoke((UpdateState)delegate
{
label.Text = text;
});
}
else
{
label.Text = text;
}
}
}
}
抱歉,这是一个打字错误。我在论坛上输入了这段代码,但错误仍然存在。
根据文档的说明,要使用Invoke方法需要导入以下内容:
命名空间:System.Windows.Forms
程序集:System.Windows.Forms(位于System.Windows.Forms.dll中)
然后我执行了以下操作:
using System.Windows.Forms;
但是这会返回相同的错误:
The name 'Invoke' does not exist in the current context
如何解决这个问题?
提前致谢。
Action
委托;不需要自己创建。 - SLaks(label.TopLevelControl as Form).Invoke
。 - Joe