Visual C#在调用Click事件后直接删除它

时间:2015-03-19 03:47:33

标签: c# list visual-studio-2013 onclick

我创建了List PictureBox并在创建期间附加了点击事件

gameDeckPics[i].Click += (sender, args) =>
                    {
                        // Code to execute on click
                    };

i引用当前添加到列表中的Picturebox的当前索引。使用Click事件时,我将PictureBox从gameDeckPics移动到另一个List。我的问题是:如何在点击项目后直接从项目列表中删除Click事件?

1 个答案:

答案 0 :(得分:2)

当您像这样内联创建方法时,您无法执行此操作。创建一个单独的事件方法。

private void picBox_Click(object sender, EventArgs e)
{
    // Code to execute on click
}

然后您可以订阅和取消订阅:

gameDeckPics[i].Click += picBox_Click;

gameDeckPics[i].Click -= picBox_Click;

如果您想在点击事件首次针对特定PictureBox触发时取消订阅,则可以在点击事件中执行此操作。

private void picBox_Click(object sender, EventArgs e)
{
    // Code to execute on click

    ((PictureBox)sender).Click -= pictureBox1_Click;
}