winforms 应为方法名,此处不为空C#错误

knsnq2tg  于 2023-01-02  发布在  C#
关注(0)|答案(1)|浏览(128)

我有这个代码片段,设置列表视图控件中的图像.

delegate void SetImageListDataCallback(string imgName, int i);

void SetImageListData(string imgName, int i)
{
    if (lvFoundModelImages.InvokeRequired)
    {
        SetImageListDataCallback c = new SetImageListDataCallback(imgName, i);
        this.Invoke(c, new object[]
        {
            imgName,i
        });
    }
    else
    {
        lvFoundModelImages.LargeImageList = imageList1;
        lvFoundModelImages.Items.Add(new ListViewItem(imgName, i));
    }
}

但问题是我在这一行中得到错误:

SetImageListDataCallback c = new SetImageListDataCallback(imgName, i);

在第一参数中,
此处ImgName不能为空
.而第二参数“i”显示
需要方法名

omvjsjqw

omvjsjqw1#

创建SetImageListDataCallback的新示例时使用了错误的语法。应将具有匹配签名的方法作为委托构造函数的第一个参数传递:

SetImageListDataCallback c = new SetImageListDataCallback(SetImageListData);

然后,您可以在调用时将imgName和i参数作为参数传递:

this.Invoke(c, new object[] { imgName, i });

相关问题