C# 用C语言在图框上绘制点网格#
我已经搜索了大约12个小时,现在试图找到一种在图片盒上画点的方法,我发现了许多给出示例代码的线程,但我似乎无法完成我想要的 在essance中,我想做的是: 我有一个windows窗体,上面有一个PictureBox,我在PictureBox中没有任何图像,但是我将BackColor设置为黑色。我正在尝试创建一个新的位图图像,然后运行代码以以下样式创建白点:C# 用C语言在图框上绘制点网格#,c#,bitmap,picturebox,C#,Bitmap,Picturebox,我已经搜索了大约12个小时,现在试图找到一种在图片盒上画点的方法,我发现了许多给出示例代码的线程,但我似乎无法完成我想要的 在essance中,我想做的是: 我有一个windows窗体,上面有一个PictureBox,我在PictureBox中没有任何图像,但是我将BackColor设置为黑色。我正在尝试创建一个新的位图图像,然后运行代码以以下样式创建白点: .......... .......... .......... .......... 这样我就可以在P
..........
..........
..........
..........
这样我就可以在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。这意味着你的应用程序不再“绘制”,所以当你运行它时,它需要再次绘制,这会导致它再次崩溃等。