Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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# 为什么不是';t ControlPaint.DrawGrid函数不向PictureBox显示任何内容_C#_Image_Bitmap_Grid_Picturebox - Fatal编程技术网

C# 为什么不是';t ControlPaint.DrawGrid函数不向PictureBox显示任何内容

C# 为什么不是';t ControlPaint.DrawGrid函数不向PictureBox显示任何内容,c#,image,bitmap,grid,picturebox,C#,Image,Bitmap,Grid,Picturebox,我想制作一个图形纸网格,并将图形设置为图片框的图像。现在,我甚至可能使用了错误的东西来绘制图形纸网格,但我四处询问,一些人说DrawGrid方法可以工作。下面的代码没有返回任何错误,但当我运行按钮1\u Click方法时,它不会向图片框显示任何内容 private void button1_Click(object sender, EventArgs e) { button2.Visible = true; Bitmap bmp = new Bitmap(pictureBox1

我想制作一个图形纸网格,并将图形设置为图片框的图像。现在,我甚至可能使用了错误的东西来绘制图形纸网格,但我四处询问,一些人说
DrawGrid
方法可以工作。下面的代码没有返回任何错误,但当我运行
按钮1\u Click
方法时,它不会向
图片框显示任何内容

private void button1_Click(object sender, EventArgs e)
{
    button2.Visible = true;

    Bitmap bmp = new Bitmap(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height);
    Size yourGridspacing = new Size((int)numericUpDown1.Value, (int)numericUpDown2.Value);
    using (Graphics G = Graphics.FromImage(bmp))
    {
         ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size), yourGridspacing , Color.Black);
    }

    pictureBox1.Image = bmp;
}

你知道问题出在哪里吗?

你的
图片盒可能有
白色背景。。如果是,请告诉
ControlPaint.DrawGrid
方法so.:

     ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size), 
                           yourGridspacing , Color.White);
参数控制点的颜色;它应该有助于找到一种对比度的颜色。因此,最好的写作方式可能是:

     ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size), 
                           yourGridspacing, pictureBox1.BackColor);
这将适用于除
Color.Transparent
之外的所有颜色。。(在这种情况下,下面控件的颜色将决定点是否可见。)

你可能会想,为什么选择这样一条迂回的道路?嗯,方法
DrawGrid
实际上并不像
Graphics
中的方法那样是一种普通的绘图方法。它是用于构建Windows控件(如
按钮
复选框
)的健壮显示的几种方法之一。。现在,绘制网格的背景需要只有一种颜色;它可能是一个图像或渐变,它可能会改变

您应该选择一种典型的颜色来表示该背景。然后,系统将为圆点选择具有良好对比度的颜色


有关控制网格颜色的方法,请参见中的最后一个选项

代码应该是有效的。你检查过你的网格间距是否正确了吗?或者
pictureBox1
可见?感谢您的帮助,帮助我并回答了我的所有问题。祝你度过愉快的一天或一夜,希望我能再次见到你。我会对你的问题竖起大拇指,但我没有这样做的信誉点。