在 winforms 中创建可点击的 C# 图像映射

2024-01-05

我正在尝试开发一个基本的 C# winforms 应用程序,以可点击的图像地图作为其焦点。也就是说,某个部分可单击并将打开一个新表单的图像。例如,图像可以是棋盘,单击某个方块将执行打开新表单的操作。

我希望这个概念是清楚的。我在 S.O. 上看过类似的问题。并且找不到可行的解决方案。

Cheers


我的解决方案是利用MouseUp任何保存图像的控件上的事件。当您点击时,解决e.Location(MouseUp 给你MouseEventArgs)到控制使用PointToClient().

一旦你拥有了Point,您只需要确定它是否在有效的Rectangle,如果是,则启动适当的表格。

Edit:

您可以使用表单设计器向表单添加控件,例如Panel然后向该控件添加事件处理程序,例如OnMouseUp。它看起来像这样:

private void panel1_MouseUp(Object sender, MouseEventArgs e)
{
    //your code goes here
}

每当用户单击面板并释放鼠标按钮时,都会调用该事件处理程序。

在该事件处理程序中,您可以有这样的内容:

if (e.Button.Equals(MouseButtons.Left))
{
    Rectangle rect = new Rectangle(10, 10, 100, 100);  //this is the zone you wish to react the user clicking on
    if (rect.Contains(e.Location))
    {
        //show your form
    }
}

e.Location将是释放按钮时鼠标的位置,在与相关控件相对应的坐标中,在本例中panel1.

如果需要考虑许多区域,例如保留一个列表或数组,您可能需要一个更优雅的解决方案Rectangle并循环它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 winforms 中创建可点击的 C# 图像映射 的相关文章

随机推荐