C# 确定鼠标从ToolStripMenuItem中单击哪个PictureBox

C# 确定鼠标从ToolStripMenuItem中单击哪个PictureBox,c#,winforms,C#,Winforms,我有一些动态创建的PictureBox,还有一个名为“删除”的ToolStripMenuItem的ContextMenu。。。我只想删除单击的PictureBox,但此ContextMenu附加到所有PictureBox 怎么做?请解释一下,因为我还是一个初学者。你必须遵循菜单所有者的链条,直到你到达控制点: private void RemoveMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem ti = sende

我有一些动态创建的
PictureBox
,还有一个名为“删除”的
ToolStripMenuItem的
ContextMenu
。。。我只想删除单击的
PictureBox
,但此
ContextMenu
附加到所有
PictureBox


怎么做?请解释一下,因为我还是一个初学者。

你必须遵循菜单所有者的链条,直到你到达控制点:

private void RemoveMenuItem_Click(object sender, EventArgs e) {
  ToolStripMenuItem ti = sender as ToolStripMenuItem;
  ContextMenuStrip cs = ti.Owner as ContextMenuStrip;
  PictureBox pb = cs.SourceControl as PictureBox;
  MessageBox.Show(pb.Name);  // or pb.Dispose();
}
此代码未执行任何错误检查。在尝试访问其任何属性之前,应该检查这些变量是否为null

科迪·格雷在这里给出了一个全面的答案: