我正在尝试进行扫雷克隆,而鼠标事件遇到了麻烦。如果我在图片框上按下鼠标按钮,然后将鼠标移至另一个框,即使发生在另一个控件上,mouseup事件仍将具有相同的对象发送者。

我需要mousedown事件,以便我可以查看是否同时按下了两个鼠标按钮,不幸的是,当我释放按钮时,mouseup事件似乎并不关心光标在哪里。

如果我不能清楚表达自己的想法,请考虑扫雷。我希望能够左键单击,右键单击,同时单击两者,并且还能够在按下并打开释放它的位置后移动光标。

有人有什么想法吗?

最佳答案

我设法找出了可以解决问题的办法,如果将来有人需要,可以把它留在这里。

private void MouseUp(object sender, MouseEventArgs e)
    {
        Point ptCursor = Cursor.Position;
        ptCursor = PointToClient(ptCursor);
        PictureBox pBox = (PictureBox)GetChildAtPoint(ptCursor);
        pBox.BackColor = System.Drawing.Color.Blue;
    }


我设置了一个带有一些图片框的简单表单,当发生mouseup事件时,它将检查光标位置下的控件,然后可以将其用于您的需要。我遇到的问题是mouseup事件与mousedown事件发生的控件相关,因此,当mouseup事件发生时,我无法访问光标所在的控件。

我仅进行了大约4周的编程,所以该解决方案可能有很多缺陷,因此,如果有任何问题,反馈会很棒。

关于c# - MouseUp和MouseDown始终具有相同的对象发送者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23162238/

10-11 05:59