我创建了List
PictureBox
并在创建期间附加了点击事件
gameDeckPics[i].Click += (sender, args) =>
{
// Code to execute on click
};
i
引用当前添加到列表中的Picturebox
的当前索引。使用Click事件时,我将PictureBox从gameDeckPics
移动到另一个List。我的问题是:如何在点击项目后直接从项目列表中删除Click事件?
答案 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;
}