0

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

4

3 回答 3

0

我想你有rect一些Rectangle初始化,它的坐标是相对于你的PictureBox

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    if(rect.Contains(e.Location)){
       //your code here
    }
}
于 2013-06-16T15:50:49.357 回答
0

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

Rectangle rect1 = new Rectangle(/*coordinates of part of image*/);
OnClick(object sender, MouseEventArgs e)
{
  if (rect1.Contains(e.Location))
  {
     //handler for this part
  }
} 
于 2013-06-16T15:52:29.433 回答
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
}
于 2013-06-16T16:04:59.750 回答