如果我需要传入参考和值类型的混合,我如何使用Control.Invoke?

时间:2011-10-07 18:57:15

标签: winforms invokerequired

我如何做以下事情?

private delegate void RenameOperation(string name, string uniqueName, int position);

private void AssignColumnNames(string name, string uniqueName, int position)
{
    dataGridView1.Columns[position].HeaderCell.Value = name;
    dataGridView1.Columns[position].HeaderCell.Tag = uniqueName;
}
    void SomeFunction()
    { 
    int colCount = 0;
    // ... some other code
    if (dataGridView1.InvokeRequired)
        {
            RenameOperation rename = new RenameOperation(AssignColumnNames);
            dataGridView1.Invoke(rename, member.Name, member.UniqueName, colCount);
        }
    }

每次我这样做,我得到'System.Int32 []'类型的对象无法转换为'System.Int32'类型,我根本不知道如何解决我的问题。我可能会以非常不同的方式编码,但我很感兴趣为什么我不能这样做。

1 个答案:

答案 0 :(得分:-1)

管理来解决我自己的问题 - 对于任何感兴趣的人我已经通过colCount在声明它并调用此调用之间调用,但写了:dataGridView1.Invoke(new ResizeOperation(AddColumn),new [] {colCount} );因为我认为那里的类型信息是多余的。