【问题标题】:Print Dialog: How can I remove the Page Range -> Pages default of "0"?打印对话框:如何删除页面范围 -> 页面默认值“0”?
【发布时间】: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


【解决方案1】:

您应该同时指定 FromPageToPage 值:

//To show 1 in front of Pages:
print_dialog.AllowSomePages = true;  
//Default value for PrinterSettings.MinimumPage is 0
//Default value for PrinterSettings.MaximumPage is 9999
print_dialog.PrinterSettings.FromPage = 1;
print_dialog.PrinterSettings.ToPage = 1;

FromPage 值应小于或等于ToPage

这两个值也应在MinimumPageMaximumPage 指定的范围内。

【讨论】:

  • 如果您对应用答案有任何疑问,请告诉我:)
  • 谢谢雷扎。您需要同时指定两者以避免这种神秘的错误是多么奇怪,但这确实有效!至少我可以将它设置为明智的。没有办法将其设置为空白?
  • 不客气 :) 由于属性是int,您应该将其设置为整数。您是否曾在打印对话框中看到它为空?我从未见过。你有吗?
  • 嗯...不,我确实没有!你是对的(再一次!:)。我查看了很多程序中的很多打印对话框,那些有空白页字段的对话框实际上与 .NET PrintDialog 略有(或非常)不同,而相同的则没有空白字段。所以我实际上并没有仔细观察,似乎。干杯! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
相关资源
最近更新 更多