【问题标题】:Clickable Image Map c#可点击的图像映射 c#
【发布时间】:2011-09-17 13:25:03
【问题描述】:

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

目前我对地图进行了 photoshop 并将其作为表单的背景。我打算将图片框放在不同的区域上,并手动编写鼠标悬停、单击和鼠标按下事件以使按钮外观。

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

【问题讨论】:

    标签: c# image button picturebox


    【解决方案1】:

    虽然我认为这不是一个坏主意,但另一种选择是使用 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 对象列表,您总是可以使用一个 Rectangle 数组和一个 for 循环来更有效地检查单击的位置是否在任何 Rectangle 内。

    【讨论】:

    • 如果有超过 1 个,我会使用一个数组。
    【解决方案2】:

    在 CodeProject,有人为此创建了 ImageMap Control。我想其他人都有空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多