这。调用抛出无法从"方法组"转换为"系统.委托"



我不知道如何解释,所以这是我的代码:

this.Invoke(listBox1.Items.Add, new Object[] { e.Data.ToString() });

但是,如果我没有任何错误,一切都会好起来的,但遗憾的是,我有两个错误:

错误1

与"System.Windows.Forms.Control.Invoke(System.Delegate,params object[])"匹配的最佳重载方法具有一些无效参数

错误2

参数1:无法从"方法组"转换为"System.Delegate"

我应该做些什么来克服这些例外情况?

Invoke要求您使用委托作为第一个参数。ListBox.Items.Add方法,而不是委托。

然而,你可以使用这个:

this.Invoke((Action)delegate()
{
    listBox1.Items.Add(e.Data.ToString());
});

设置要使用的委托。

Invoke(new Action(() => 
{ 
  // Do it 
}));

您可以检查te控件是否需要调用,如果需要,请调用它:

if(listBox1.InvokeRequired)
     listBox1.Invoke((Action)(()=> listBox1.Items.Add(e.Data.ToString())); //if e.Data is the object to add it to listBox!

相关内容

  • 没有找到相关文章

最新更新