我可以检查鼠标是否在某个区域内单击?

时间:2013-06-16 15:46:14

标签: c# winforms picturebox

我的Windows窗体中有PictureBox。当我点击图片的某些部分时,需要更改一些标签文本。 有没有办法知道它是否在图像的某些部分被点击了? 我没有提供任何代码,因为我认为你可以理解我的问题。

3 个答案:

答案 0 :(得分:0)

我认为您rect作为Rectangle进行了一些初始化,其坐标相对于您的PictureBox

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    if(rect.Contains(e.Location)){
       //your code here
    }
}

答案 1 :(得分:0)

您应该为图像创建映射,如下所示:

Rectangle rect1 = new Rectangle(/*coordinates of part of image*/);
OnClick(object sender, MouseEventArgs e)
{
  if (rect1.Contains(e.Location))
  {
     //handler for this part
  }
} 

答案 2 :(得分:0)

创建包含您想要互动的区域的Rectangle列表。

让我们说:

private static List<Rectangle> rects;

以某种顺序用所需的坐标填充它。

然后在OnClick事件

OnClick(object sender, MouseEventArgs e)
{
    for(int i=0; i<rects.Count; i++)
        if (r.Contains(e.Location))
            ActionForArea(i);    
} 

private static void ActionForArea(int number)
{
    //do sth
}