gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:39:14 24 4
gpt4 key购买 nike

我正在尝试开发一个基本的 C# winforms 应用程序,它以可点击的图像映射为重点。也就是说,某个部分可点击的图像将打开一个新表单。例如图片可以是棋盘,点击某个方 block 会执行打开新表格的 Action 。

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

干杯

最佳答案

我的解决方案是在持有图像的任何控件上利用 MouseUp 事件。当您获得该点击时,使用 PointToClient()e.Location(MouseUp 为您提供 MouseEventArgs)的位置解析为控件。

一旦你有了那个 Point,你只需要确定它是否在一个有效的 Rectangle 中,如果是,启动适当的表单。

编辑:

您可以使用窗体设计器向窗体添加控件,例如 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 的列表或数组并循环遍历它们,您可能需要更优雅的解决方案。

关于c# - 在 winforms 中创建可点击的 C# 图像映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com