Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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语言在图框上绘制点网格#_C#_Bitmap_Picturebox - Fatal编程技术网

C# 用C语言在图框上绘制点网格#

C# 用C语言在图框上绘制点网格#,c#,bitmap,picturebox,C#,Bitmap,Picturebox,我已经搜索了大约12个小时,现在试图找到一种在图片盒上画点的方法,我发现了许多给出示例代码的线程,但我似乎无法完成我想要的 在essance中,我想做的是: 我有一个windows窗体,上面有一个PictureBox,我在PictureBox中没有任何图像,但是我将BackColor设置为黑色。我正在尝试创建一个新的位图图像,然后运行代码以以下样式创建白点: .......... .......... .......... .......... 这样我就可以在P

我已经搜索了大约12个小时,现在试图找到一种在图片盒上画点的方法,我发现了许多给出示例代码的线程,但我似乎无法完成我想要的

在essance中,我想做的是:

我有一个windows窗体,上面有一个PictureBox,我在PictureBox中没有任何图像,但是我将BackColor设置为黑色。我正在尝试创建一个新的位图图像,然后运行代码以以下样式创建白点:

    ..........
    ..........
    ..........
    ..........
这样我就可以在PictureBox上看到网格样式。然而,每次尝试我都失败了,所以如果有人能帮助我理解如何使用它,我将不胜感激

我最近的尝试是使用ControlPaint.DrawGrid方法,如下所示:

private void picBox_Display_Paint(object sender, PaintEventArgs e)
{
    Size size = new Size(35, 35);
    Rectangle rect = new Rectangle(0,0,picBox_Display.Width, picBox_Display.Height);
    ControlPaint.DrawGrid(Graphics.FromHwnd(picBox_Display.Handle), rect, size, Color.White);
}
上述代码位于PictureBox Paint事件方法中。我知道它在代码中运行,因为我在方法的末尾有一个断点,但什么也没有发生。我不确定我是否理解ControlPaint.DrawGrid是如何工作的我应该添加其他内容吗

今天早些时候,我尝试使用Bitmap.SetPixel方法,但一直存在问题,并一直在寻找其他方法来完成


任何帮助都将不胜感激。谢谢

您需要为此使用e.图形。还请注意,调试此类代码可能很困难,因为调试通常会使图形无效,因此需要重新绘制。最后一个参数是您正在绘制的背景色,因此它看起来与您指定的相反。如果你的背景是黑色的,你需要传递颜色。黑色

ControlPaint.DrawGrid(e.Graphics, rect, size, Color.Black);

您想只在屏幕上绘制点,还是实际将点绘制到位图?ie位图是否仅用于绘制点?最终结果是我想将点绘制到位图图像,然后将其分配到pictureBox.image,但我在这方面也遇到了问题,然后我看到了ControlPaint.DrawGrid方法,并认为我可以尝试。但是我仍然有问题,但是在没有调试的情况下运行exe程序后,我可以看到圆点,但是就像我说的,我仍然试图找到一种方法将圆点放到图像上,并且我认为我在vs调试器中遇到了同样的问题,所以我回去尝试SetPixel方法,不幸的是,我已经删除了以前的代码,所以我不得不做一些工作。感谢你显然你在所有3个帐户上都得到了它,我真的很惊讶调试问题,这可能是我最大的问题,我总是使用VS的调试功能。对此,我想我必须确保它使用构建函数创建的exe工作,谢谢你的帮助…@MarkSweetman调试很好,只是如果你在paint事件中设置断点,那么通常会在你的应用程序顶部出现visual studio。这意味着你的应用程序不再“绘制”,所以当你运行它时,它需要再次绘制,这会导致它再次崩溃等。