c#如何打印winform 控件 并保存文件
时间: 2023-08-03 15:03:11 浏览: 138
C#winform窗体保存文件对话框
你可以使用 `PrintDocument` 和 `PrintDialog` 类来打印 WinForm 控件,并使用 `SaveFileDialog` 类来保存打印后的文件。下面是一个简单的示例代码:
```csharp
private void btnPrint_Click(object sender, EventArgs e)
{
// 创建打印文档对象
PrintDocument pd = new PrintDocument();
// 设置打印事件处理程序
pd.PrintPage += new PrintPageEventHandler(this.PrintImage);
// 创建打印对话框
PrintDialog printDialog = new PrintDialog();
// 如果用户点击了“确定”按钮
if (printDialog.ShowDialog() == DialogResult.OK)
{
// 设置打印文档对象的打印机名称
pd.PrinterSettings.PrinterName = printDialog.PrinterSettings.PrinterName;
// 打印文档
pd.Print();
}
}
private void PrintImage(object sender, PrintPageEventArgs e)
{
// 获取要打印的控件
Control control = this.Controls[0];
// 创建位图对象
Bitmap bmp = new Bitmap(control.Width, control.Height);
// 将控件绘制到位图上
control.DrawToBitmap(bmp, control.ClientRectangle);
// 绘制位图到打印页面上
e.Graphics.DrawImage(bmp, 0, 0);
// 释放资源
bmp.Dispose();
}
private void btnSave_Click(object sender, EventArgs e)
{
// 创建保存文件对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
// 设置文件类型
saveFileDialog.Filter = "JPEG图片|*.jpg|位图文件|*.bmp|PNG图片|*.png";
// 如果用户点击了“确定”按钮
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// 获取要保存的控件
Control control = this.Controls[0];
// 创建位图对象
Bitmap bmp = new Bitmap(control.Width, control.Height);
// 将控件绘制到位图上
control.DrawToBitmap(bmp, control.ClientRectangle);
// 保存位图到文件
bmp.Save(saveFileDialog.FileName);
// 释放资源
bmp.Dispose();
}
}
```
你需要将 `this.Controls[0]` 替换为你要打印或保存的控件。此外,你还可以根据需要修改保存文件类型的过滤器。
阅读全文