我在WinForms应用程序中使用了WebBrowser控件,它正在加载转换为HTML/CSS的XML。如果我只想在那里或常规浏览器中查看它,它看起来很漂亮。
当表单加载时,它应该导航到文件,然后在OnDocumentCompleted事件触发时,应该在注册表中设置标题、页脚和默认打印机名称,然后根据用户指定的份数调用Print()方法。
我已经通过调试器运行了它,并且在OnDocumentCompleted事件中正确地调用了webBrowser.Print()方法多次。没有任何东西是null的,Visible属性在WebBrowser控件上为true,AllowNavigation也为true。是的,打印机已经开启并且可以通过网络访问。完全相同的代码在项目的其他地方工作正常,但在这里不行。
还有什么可能会导致这个可怕的控件忽略我的打印命令吗?
理想情况下,我希望整个控件都隐藏在屏幕外,因为这是使用Windows Scheduler运行,用户不应该看到它。我已经阅读过控件需要可见,所以在解决这个问题之前,可以等待一段时间。
编辑:我的OnDocumentCompleted事件处理程序的最后两行将DialogResult设置为OK并关闭了表单。删除对Close()的调用后,它可以打印,所以我猜在表单关闭和WebBrowser控件被释放之前,它没有到达打印池。
除了设置一个任意的时间限制来等待关闭之外,还有没有其他方法来判断打印何时完成?
当表单加载时,它应该导航到文件,然后在OnDocumentCompleted事件触发时,应该在注册表中设置标题、页脚和默认打印机名称,然后根据用户指定的份数调用Print()方法。
我已经通过调试器运行了它,并且在OnDocumentCompleted事件中正确地调用了webBrowser.Print()方法多次。没有任何东西是null的,Visible属性在WebBrowser控件上为true,AllowNavigation也为true。是的,打印机已经开启并且可以通过网络访问。完全相同的代码在项目的其他地方工作正常,但在这里不行。
还有什么可能会导致这个可怕的控件忽略我的打印命令吗?
理想情况下,我希望整个控件都隐藏在屏幕外,因为这是使用Windows Scheduler运行,用户不应该看到它。我已经阅读过控件需要可见,所以在解决这个问题之前,可以等待一段时间。
编辑:我的OnDocumentCompleted事件处理程序的最后两行将DialogResult设置为OK并关闭了表单。删除对Close()的调用后,它可以打印,所以我猜在表单关闭和WebBrowser控件被释放之前,它没有到达打印池。
除了设置一个任意的时间限制来等待关闭之外,还有没有其他方法来判断打印何时完成?