Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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# 如何在画框上画一个点?_C# - Fatal编程技术网

C# 如何在画框上画一个点?

C# 如何在画框上画一个点?,c#,C#,我有一个名为Form2的表单,其中包含一个picturebox1 从一个单独的类文件中,我从管道接收信息,这些信息是:;charX,charY,map,mapX和mapY 如果您查看我附加的图片(右键单击并放大),您可以看到我的角色所在的地图上有一个迷你地图,它也将始终通过显示黄点来显示我的角色在迷你地图中的移动 现在,在我的Form2中有一个函数,如果我的角色输入了一个新的地图,它将从我的单独类文件中调用。此功能的作用是更新我的pictureBox1图片位置,以与游戏中正确的迷你地图相对应。它

我有一个名为Form2的表单,其中包含一个picturebox1

从一个单独的类文件中,我从管道接收信息,这些信息是:;charX,charY,map,mapX和mapY

如果您查看我附加的图片(右键单击并放大),您可以看到我的角色所在的地图上有一个迷你地图,它也将始终通过显示黄点来显示我的角色在迷你地图中的移动

现在,在我的Form2中有一个函数,如果我的角色输入了一个新的地图,它将从我的单独类文件中调用。此功能的作用是更新我的pictureBox1图片位置,以与游戏中正确的迷你地图相对应。它几乎是游戏中的外部迷你地图

问题是它只显示正确的迷你地图图像,没有角色移动

下面是我的一段代码

正如您所读到的,如果游戏中没有迷你地图,我的pictureBox中就没有迷你地图(来自我的服务器,404错误);因此,在显示我的错误图像时,它将表单大小设置回默认值(152110)。如果游戏中有一个迷你地图,一个函数会更新pictureBox中的图片(通过从我的服务器抓取图片),然后在上面的pictureBox1代码中,相应地设置表单大小(使其美观紧凑,没有额外的空间)

现在,我想要完成的是实时移动(我将使用管道提供的charX&Y信息)

我想在我的pictureBox上画一个小黄点(如图中所示),它将始终根据charX&Y绘制

我表单上的pictureBox始终设置为0,0的位置


我的问题是,;我如何在我的pictureBox上始终画一个点(使用charX&Y),但使用表单的位置(我猜)(例如:pictureBox位置为0,0)

我不太确定,但多亏了dotTutorials,他有一次告诉我要覆盖图形

这可能会令人困惑,但可能会奏效

    point a = new point(x,y);
    pen p = new pen(colour);
    Graphics g = Graphics.FromHwnd(Process.GetCurrentProcess.MainWindowHandle);
    g.drawline(p,a,a);
也可以在窗体上使用“绘制位图”(bmp图片)

    int screen_width = 500;
    int screen_height = 500;

    // Your image..
    var crosshair_bitmap = (Bitmap)Image.FromFile("C:\Example\CrosshairImage.png");

    Graphics g = Graphics.FromHwnd(Process.GetCurrentProcesses.MainWindowHandle);
    g.DrawImage(crosshair_bitmap, new Point(x, y);
所有的功劳都归功于dotutorials

对不起,我犯了错误


Poom

您将处理PictureBox的Paint()事件,并使用该处理程序中提供的
e.Graphics
进行绘制。显然,你必须将坐标缩放并转换为图片盒的大小。@Idle_Mind,谢谢!我稍后会尝试。有什么问题吗?要画点还是在图片盒中找到点的位置?@valter,我目前正尝试这样做;然而,一个可能即将出现的问题可能是在图片盒中找到点的位置的能力。如果你不能做到这一点,我在这里帮助你不必这样做。只需
Graphics g=this.CreateGraphics
Graphics g=nameOfcontrol.CreateGraphics