0

我编写了一个程序,它遍历数据库中的列表,在数据库中设置一些表,并打印出 Crystal Report 的 PDF。在打印时,我会弹出一个新窗口,上面有一个标签,说明当前正在打印什么,还有一个取消作业的按钮。我遇到的问题是,当报告正在收集数据并打印报告时,弹出窗口没有响应,并且取消按钮通常没有任何作用。有时我运气好,而且时间正确,所以我的代码被调用了,但我不得不按下按钮。

我想也许线程是答案,但我还没有找到使用它的解决方案。我有一些 DoEvents 分散在各处,但这并不是真正的答案,我知道。

只是想知道是否有人可能有解决方案。

谢谢一堆

4

1 回答 1

1

我建议将您的打印工作放在另一个线程中。

当您的程序准备好打印时,显示一个弹出窗口(模态形式)。在这个弹出窗口(OnLoad方法)内启动工作线程,例如使用BackGroundWorker类,并在打印完成或按下取消按钮时关闭此对话框。

于 2012-08-30T23:17:25.897 回答