可点击的图像映射c#

时间:2011-06-17 22:27:35

标签: c# image button picturebox

我正在制作一个C#库存应用程序。但是,我希望有一个地图,用户可以点击几个区域并与该特定区域的库存进行交互。

目前我在地图上拍照并将其作为表格的背景。我打算将图片框放在不同的区域,并手动编写鼠标,单击和鼠标按下事件以显示按钮外观。

无论如何,我的问题是,这是一个好主意吗?我是否应该将地图加载到图片框中,摆脱拖延的视觉效果并跟踪点击的坐标?

2 个答案:

答案 0 :(得分:2)

虽然我认为这不是一个坏主意,但另一种选择是使用Rectangles并使用一系列Rectangle.Contains(Point)组成的onclick函数来查明点击的点是否是鼠标包含在任何可点击区域中。

E.G。

Rectangle R1 = new Rectangle(/*Passed Variables*/);
Rectangle R2 = new Rectangle(/*Passed Variables*/);
//...
OnClick(object sender, MouseEventArgs e)
 {
 If (R1.Contains(e.Location))
  {
   //Stuff
  }
 else
 {
  If (R2.Contains(e.Location))
   {
    //Stuff
   }
 }
}

如果你有一个更大的Rectangle对象列表,你总是可以使用一个Rectangles数组和一个for循环来更有效地检查点击的位置是否在任何Rectangle内。

答案 1 :(得分:0)

在CodeProject,有人为此目的创建了ImageMap Control。我想其他人都可以。