我需要将整个DataGridView另存为Image。
我在网上看到过一些帖子,但它对我不起作用。
到目前为止,我已经尝试了这2个链接:
DataGridView to Bimap和Save Image in folder中的一个或多个。
我的意图是,一旦按下按钮,DataGridView将转换为图像,并自动保存到桌面。
我使用的代码生成了一个错误:
GDI+中发生一般错误
private void button1_Click(object sender, EventArgs e)
{
//Resize DataGridView to full height.
int height = dataGridView1.Height;
dataGridView1.Height = dataGridView1.RowCount * dataGridView1.RowTemplate.Height;
//Create a Bitmap and draw the DataGridView on it.
Bitmap bitmap = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
dataGridView1.DrawToBitmap(bitmap, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
//Resize DataGridView back to original height.
dataGridView1.Height = height;
//Save the Bitmap to folder.
bitmap.Save(@"C:\\Desktop\\datagrid.jpg");
}
希望能得到一些帮助。谢谢!
3条答案
按热度按时间yqhsw0fo1#
您需要修复代码的多个部分:
bitmap.Save(@"C:\\Desktop\\datagrid.jpg");
。此路径字符串应为:或
见第6点。
1.计算DataGridView高度时,不包括网格的页眉。
1.当创建
Bitmap
对象时,该对象必须被释放,就像您创建的任何其他可释放对象一样。您可以使用Bitmap.Dispose()方法或使用using语句声明您的对象(首选)。Bitmap.Save([Path])
,而不指定ImageFormat,会建立PNG
影像。您在Path字串中插入的副档名不会被考虑。此时,您建立的档案副档名为.jpg
,而实际上是.png
档案。1.保存这种位图时,应该使用
Png
,而不是Jpeg
。它的无损压缩更合适:它将保留图像颜色并提高整体质量。1.目前使用者桌面的路径不应该是硬式编码。此路径是由Environment.SpecialFolder.Desktop传回。
您可以修改程式码,如下所示:
gmxoilav2#
试试这个
图像保存文件路径,如“C:\Users\User\Desktop\datagrid.jpg”
zzlelutf3#
尝试将
bitmap.Save(@"C:\\Desktop\\datagrid.jpg");
替换为: