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
可见?感谢您的帮助,帮助我并回答了我的所有问题。祝你度过愉快的一天或一夜,希望我能再次见到你。我会对你的问题竖起大拇指,但我没有这样做的信誉点。