我正在制作一个C#库存应用程序。但是,我希望有一个地图,用户可以点击几个区域并与该特定区域的库存进行交互。
目前我在地图上拍照并将其作为表格的背景。我打算将图片框放在不同的区域,并手动编写鼠标,单击和鼠标按下事件以显示按钮外观。
无论如何,我的问题是,这是一个好主意吗?我是否应该将地图加载到图片框中,摆脱拖延的视觉效果并跟踪点击的坐标?
答案 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。我想其他人都可以。