【发布时间】:2016-11-06 06:28:38
【问题描述】:
如果我这样创建一个简单的 WinForms PrintDialog:
PrintDialog print_dialog = new PrintDialog();
print_dialog.UseEXDialog = true;
// Setup dialog defaults
print_dialog.AllowSomePages = true; // Setting this shows a default value of "0"
print_dialog.AllowCurrentPage = true;
print_dialog.AllowSelection = false;
if (print_dialog.ShowDialog() == DialogResult.OK) {
Debug.WriteLine("Printing");
}
我得到以下结果,其中 Page Range -> Pages 的默认值为“0”(带圆圈):
在我看来,这看起来不专业。我看过的所有其他程序都将该值留空,直到用户填写为止。有什么办法可以让默认显示为空白吗?
即使我试图通过手动将值设置为比 Pages: 0 对我的用户更有意义的值来破解此问题,例如:
print_dialog.PrinterSettings.FromPage = 1;
我得到一个异常:Value FromPage 超出范围。
我能做什么?
【问题讨论】:
-
您还应该在设置 frompage 属性之前设置此属性 PrinterSettings.PrintRange = PrintRange.SomePages
-
@lyz 设置
print_dialog.PrinterSettings.PrintRange = PrintRange.SomePages不是强制性的,它只是设置“页面:”单选按钮被选中。错误是因为指定的值超出范围,这只是因为 OP 没有设置print_dialog.PrinterSettings.ToPage值,它使用其默认值 0。FromPage应小于或等于ToPage。
标签: c# winforms printing printdialog