如何阻止代码从另一个表单上的按钮运行?

时间:2012-08-30 20:09:07

标签: .net winforms vb.net-2010

我编写了一个程序,它循环遍历数据库中的列表,在数据库中设置一些表,并打印出Crystal Report的PDF。在打印时,我弹出一个新窗口,其中有一个标签显示当前正在打印的内容和一个取消作业的按钮。我遇到的问题是,当报告收集数据并打印报告时,弹出窗口没有响应,取消按钮通常不执行任何操作。有时我得到运气并且时间正确,所以我的代码被调用,但我必须在按钮上堵塞。

我认为线程可能是答案,但我找不到可以使用它的解决方案。我知道,我有一些分散的DoEvent,但这不是真正的答案。

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

非常感谢

1 个答案:

答案 0 :(得分:1)

我建议将您的打印作业放在另一个帖子中。

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