似乎您可以保留设置文件 PrinterSettings 和 PageSettings,它们是可序列化的等。太好了!一切都很顺利,直到我尝试坚持我的 PageSettings 和页边距。每次我更改边距时,保存设置,然后将它们重新加载回 PageSetupDialog.PageSettings - 它们已被修改。有谁知道为什么会这样?是驱动程序还是 Windows 正在做的事情?它很奇怪,见下文:
这里我显示对话框:
PageSetupDialog psd = new PageSetupDialog();
psd.PageSettings = MySettings.Default.pageSettings;
if (psd.ShowDialog() == DialogResult.OK)
我手动将值更改为 5。
然后我保存更改:
MySettings.Default.pageSettings = psd.PageSettings;
当我重新加载对话框并从设置文件加载设置时,值已更改为 2!?
更新:
因此,只是为了尝试扩展问题 - 如果我们第一次显示 PageSetupDialog,默认设置值为所有边距为 10。如果我们在调试期间检查这些值,那么我们会看到它们是这样表示的:
所以它们都是 100,很奇怪,但我希望它们是 10,即像对话框所说的 10mm,所以我不知道 100 是什么度量单位,但无论如何让我们假设它与对话框中的 10 相关。
然后我们在对话框中将它们全部编辑为 5 并按 OK - 所以我们通过了以下代码:
if (psd.ShowDialog() == DialogResult.OK)
所以我们希望在检查 pageSettingDialog 对象时看到一些边距值全部为 5(或 50,这似乎是 10 与 100 混淆的情况,见上文)。那么让我们看一下对象:
低,看这不是我们所期望的,出于某种奇怪的原因,它是 20。这就是我被卡住的地方,我只是无法弄清楚这里看到的背后发生了什么。为什么它从 50 变为 20?,为什么它不会保持我设置的值?希望能更好地解释它。