我有一些动态创建PictureBox
的 's 和ContextMenu
一个ToolStripMenuItem
名为“Remove”的...我只想删除PictureBox
被点击的,但它ContextMenu
附加到所有PictureBox
's。
怎么做 ?请解释一下,因为我还是个初学者。
您必须遵循菜单所有者链,直到您到达控件:
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();
}
此代码没有进行任何错误检查。在尝试访问其任何属性之前,您应该检查这些变量是否为空。
Cody Gray 在这里给出了一个全面的答案:Determine what control the ContextMenuStrip was used on