在C#中的PictureBox上绘制点网格

时间:2012-09-24 03:37:51

标签: c# bitmap picturebox

我一直在搜索大约12个小时,试图找到一种在PictureBox上绘制点的方法,我发现很多线程都提供了示例代码,但我似乎无法完成我想要的任务。

我想要做的就是:

我有一个带有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方法,但一直遇到问题,并一直在寻找其他方法来尝试完成它。

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

1 个答案:

答案 0 :(得分:1)

您需要使用e.Graphics。另请注意,调试此类代码可能很困难,因为调试通常会使绘图无效,因此需要再次绘制。最后一个参数是针对您绘制的内容的背景颜色,因此它看起来与您指定的相反。如果背景为黑色,则需要传入Color.Black

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