Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DrawLine()和光标。位置不显示相同的坐标_C#_Winforms - Fatal编程技术网

C# DrawLine()和光标。位置不显示相同的坐标

C# DrawLine()和光标。位置不显示相同的坐标,c#,winforms,C#,Winforms,我有一个Windows窗体应用程序。当我按下其中的“绘制”按钮时,它会绘制一条线: private void button1_Click(object sender, EventArgs e) { projectilePathPen = new Pen(Color.Black, 2); projectilePathGraphics.DrawLine(projectilePathPen, 150, 150, 450, 150); } 我有一个窗体的鼠标

我有一个Windows窗体应用程序。当我按下其中的“绘制”按钮时,它会绘制一条线:

private void button1_Click(object sender, EventArgs e)
    {


        projectilePathPen = new Pen(Color.Black, 2);
        projectilePathGraphics.DrawLine(projectilePathPen, 150, 150, 450, 150);
}
我有一个窗体的鼠标移动事件(以获取当前鼠标的坐标):

每当我放置光标时,它都会给我错误的值。我把它放在刚画的线的开头,它没有给出(0,0)预期的值。

替换这些线:

actualX = Cursor.Position.X - 150;
actualY = 150 - Cursor.Position.Y;
有了这些:

actualX = e.X - 150;
actualY = 150 - e.Y;

e.X
e.Y
提供光标相对于
panel1
的本地位置,而
光标。position
是光标在屏幕上的全局位置。

光标位置可能相对于屏幕,您是否尝试过使用
MouseEventArgs
?否。我应该如何使用它?,无论是
e.Location
还是
e.X
听起来都像是做了您想做的事情,所以请查看指向客户机和PointToScreen@Sayse非常感谢。它起作用了。我很想知道谁否决了这个问题,并想知道背后的原因。答案是正确的,但@Sayse已经在评论中回答了它。@TalhaIrfan upvote,然后接受它。网站的政策是答案无论如何都不应该在评论中发布。
actualX = e.X - 150;
actualY = 150 - e.Y;