【发布时间】:2011-02-03 09:38:26
【问题描述】:
我在 VB.NET WinForms 应用程序中有一个 WebBrowser 控件。我可以从代码中设置默认打印机并在不提示用户的情况下打印。但是,还有一个显示 PrintDialog 的打印按钮。如果首先完成此操作,页面将打印。然后,如果我稍后尝试以编程方式打印(再次将默认打印机设置为其他打印机),即使我正在重置默认设置并看到 Windows 中的默认打印机正在更改,它也会打印到“打印对话框”中选择的最后一台打印机。
有什么想法吗?
除非 ShowPrintDialog 首先选择了打印机,否则它工作正常。一旦发生这种情况,无论我做什么,它似乎总是使用那台打印机。
For Each strPrinter In PrinterSettings.InstalledPrinters
If strPrinter.Contains("My Printer") Then
wScript.SetDefaultPrinter(strPrinter)
End If
Next
browser.Print()
【问题讨论】:
-
您能否显示一些代码,我正在尝试找出您实际调用第二个非打印对话框打印的位置
-
已添加代码。我正在通过 WMI 设置默认打印机。调用 SetDefaultPrinter 后,我看到 Windows 中的打印机和传真发生了变化。然而,它将打印到先前从 ShowPrintDialog 调用中选择的打印机,该调用发生在此代码执行之前。在此之前,有一个带有单击事件的打印按钮。那里发生的所有事情都是 browser.ShowPrintDialog()。仅此而已。
-
@nobugz: 试过没用
标签: c# .net vb.net winforms webbrowser-control