这调用抛出无法从';方法组';到';System.Delegate';
本文关键字:方法 System Delegate 调用 | 更新日期: 2023-09-27 17:58:21
我不知道如何解释,所以这是我的代码:
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!