我有自定义控件,其中有一个可滚动面板,整个内容在屏幕上不可见。(需要滚动查看所有内容)
用户想要精确打印面板在屏幕上的外观,但是用户想要整个面板,而不需要滚动就可以在屏幕上看到。
如何在多个页面中捕获和打印整个面板?
感谢任何帮助。
答案 0 :(得分:-1)
pnlReport.AutoScrollPosition = new Point(0, 0);
public void DrawControl(Control control, Bitmap bitmap)
{
control.DrawToBitmap(bitmap, control.Bounds);
foreach (Control childControl in control.Controls)
{
DrawControl(childControl, bitmap);
}
}
public void SaveBitmap(string filename)
{
var size = myControl.PreferredSize;
var height = size.Height;
Bitmap bmp = new Bitmap(this.myControl.Width, height);
this.myControl.DrawToBitmap(bmp, new Rectangle(0, 0, this.myControl.Width, height));
foreach (Control control in myControl.Controls)
{
DrawControl(control, bmp);
}
bmp.Save(filename, ImageFormat.Jpeg);
bmp.Dispose();
}