我正在制作一个C# inventory应用程序。然而,我希望有一个地图,用户可以点击几个地区,并与该特定地区的库存互动。
目前,我of了地图,并将其作为表单的背景。我计划将图片框放在不同的区域上,并手动编写代码,通过鼠标经过、单击和按下事件来提供按钮外观。
不管怎样,我的问题是,这是个好主意吗?我是否应该将地图加载到picturebox中,摆脱按钮的视觉效果,并跟踪点击的坐标?
发布于 2011-06-18 06:32:23
虽然我不认为这是一个坏主意,但另一种选择是使用Rectangles,并有一个由一系列Rectangle.Contains(Point)组成的onclick函数,以确定鼠标单击的点是否包含在任何可单击的区域中。
例如。
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对象列表,则可以始终使用矩形数组和for循环,以便以更有效的方式检查单击的位置是否在任何矩形内。
发布于 2011-06-18 06:35:27
在CodeProject,有人为此创建了一个ImageMap Control。我想其他的也是可用的。
https://stackoverflow.com/questions/6392450
复制相似问题