我想要检测表单中任意PictureBox
的右键点击。我已经为一个PictureBox
设置了右键单击功能。这样很好,但我希望在表单上的PictureBoxes
上点击所有正确的点击事件。
这个右键单击甚至需要知道PictureBox
名称,因为某些PictureBoxes
的上下文菜单会有所不同。
以下是我对一个PictureBox
的右键单击事件所拥有的代码。
private void DesktopIcon1Icon_MouseClick(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Right:
{
DesktopIconRightclick.Show(this, new Point(e.X, e.Y));
}
break;
}
}
如果右键单击任何PictureBox
,我需要调整此代码。
示例更新
if (pic = DesktopIcon2)
{
openToolStripMenuItem.visible = false;
}
答案 0 :(得分:3)
您可以使用一个事件来触发PictureBoxes
上的所有正确点击:
public Form1()
{
InitializeComponent();
pictureBox1.MouseClick += pictureBox_MouseClick;
pictureBox2.MouseClick += pictureBox_MouseClick;
}
然后您可以使用Sender
来查找PictureBox
的{{1}},如下所示:
Name
答案 1 :(得分:-1)
您可以尝试使用反射来查找所有PictureBox实例。 检查GetTypes作为起点。
检查此SO以获取实施示例: Using reflection to get all classes of certain base type in dll