会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
代码笔记
代码笔记
博客园
首页
新随笔
联系
订阅
管理
解决C#打印设置控件页面边距值变化问题
Code
protected
virtual
PageSettings ShowPageSetupDialog(PrintDocument printDocument)
{
//
检查printDocument是否为空,空的话抛出异常
ThrowPrintDocumentNullException(printDocument);
//
声明返回值的PageSettings
PageSettings ps
=
new
PageSettings();
//
申明并实例化PageSetupDialog
PageSetupDialog psDlg
=
new
PageSetupDialog();
ps
=
printDocument.DefaultPageSettings;
try
{
//
相关文档及文档页面默认设置
psDlg.Document
=
printDocument;
Margins mg
=
printDocument.DefaultPageSettings.Margins;
if
(System.Globalization.RegionInfo.CurrentRegion.IsMetric)
{
mg
=
PrinterUnitConvert.Convert(mg, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
}
//
备份打印文档的DefaultPageSettings,因为转换后会改变,而设置对话框单击取消按钮后不还原就不能正确显示原来的值
PageSettings psPrintDocumentBack
=
(PageSettings)(printDocument.DefaultPageSettings.Clone());
psDlg.PageSettings
=
psPrintDocumentBack;
//
printDocument.DefaultPageSettings;
//
用printDocument的时取消了对话框就要还原
psDlg.PageSettings.Margins
=
mg;
//
显示对话框
DialogResult result
=
psDlg.ShowDialog();
if
(result
==
DialogResult.OK)
{
ps
=
psDlg.PageSettings;
printDocument.DefaultPageSettings
=
psDlg.PageSettings;
}
else
{
}
}
catch
(System.Drawing.Printing.InvalidPrinterException e)
{
ShowInvalidPrinterException(e);
}
catch
(Exception ex)
{
ShowPrinterException(ex);
}
finally
{
psDlg.Dispose();
psDlg
=
null
;
}
return
ps;
}
posted @
2008-09-19 12:01
XiaoK
阅读(
1741
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告