gpt4 book ai didi

winforms - 处理窗体上所有控件的单击并获取鼠标位置

转载 作者:行者123 更新时间:2023-12-01 05:22:42 24 4
gpt4 key购买 nike

我正在处理一个窗口窗体,该窗体覆盖在代表网格的面板中。

我正在尝试创建一个处理所有鼠标点击的事件处理程序,无论点击发生在哪个面板上,然后移动 PictureBox到面板的位置。

我设法找到了一个涵盖事件处理程序的主题,但我无法从事件处理程序中获取鼠标单击的位置。以下是我到目前为止的代码(主要来自另一篇文章):

private void Form1_Load(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
c.MouseClick += new MouseEventHandler(myEvent_handler_click);
}
}

public void myEvent_handler_click(object sender, EventArgs e)
{
Point point = new Point(e.X, e.Y);

game.MoveToSquare(point);
}

代码行 Point point = new Point(e.X, e.Y);不起作用,因为我无法引用 XeYe .

如何在单击鼠标时获取鼠标的位置?

任何帮助表示赞赏。如果我不够清楚,请随时问我更多问题!

最佳答案

delegate事件处理程序的定义如下:

public delegate void MouseEventHandler(object sender, MouseEventArgs e);

MouseEventArgs 继承自 EventArgs ,这就是您的代码有效的原因。如果您更改了 EventHandler 的定义,您应该能够访问坐标:
public void myEvent_handler_click(object sender, MouseEventArgs e)
{
Point point = new Point(e.X, e.Y);
}

您也可以简单地访问 e.Location 得到点:
Point point = e.Location;

关于winforms - 处理窗体上所有控件的单击并获取鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656230/

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