可点击的图像映射c#

本文关键字:映射 图像 | 更新日期: 2023-09-27 17:59:22

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

目前,我对地图进行了PS处理,并将其作为表单的背景。我计划将图片框放在不同的区域,并手动编码鼠标悬停、单击和鼠标放下事件,以使按钮看起来像。

不管怎样,我的问题是,这是个好主意吗?我应该把地图加载到一个图片框中,去掉按钮式的视觉效果并跟踪点击的坐标吗?

可点击的图像映射c#

虽然我认为这不是一个坏主意,但一种替代方案是使用矩形,并有一个由一系列矩形组成的onclick函数。Contains(Point)可以确定鼠标单击的点是否包含在任何可单击区域中。

例如

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
   }
 }
}

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

在CodeProject中,有人为此创建了一个ImageMap控件。我想其他人也可以。