我想检测右键单击表单中的任何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;
}
最佳答案
您可以使用一个事件来触发所有PictureBoxes
的右键单击,如下所示:
public Form1()
{
InitializeComponent();
pictureBox1.MouseClick += pictureBox_MouseClick;
pictureBox2.MouseClick += pictureBox_MouseClick;
}
然后,您可以使用
Sender
来找到PictureBox
的Name
,如下所示:private void pictureBox_MouseClick(object sender, MouseEventArgs e)
{
var pic = (sender as PictureBox).Name;//pic is the Name of the PictureBox that is clicked
switch (e.Button)
{
case MouseButtons.Right:
{
MessageBox.Show(pic);//Just for example
DesktopIconRightclick.Show(this, new Point(e.X, e.Y));
}
break;
}
}
关于c# - 检测右键单击窗体上的每个PictureBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35528548/