当我有一个WinForms应用程序需要在后台执行一些繁重的工作,但只有一次任务时(通常),一般程序是相同的:
问题是,我总是手工连接它。如果我去禁用某些按钮的路线,当用户试图关闭它时使表格确认等等......由于每种形式都不同,所以没有办法解决这个问题。但有时候花时间编写所有这些细节是不值得的,我想做的就是阻止用户点击任何内容并显示应用程序工作的一些视觉指示。
是否有一种简单的方法可以将UI设置为不可交互的“工作”状态,就像灯箱在Web界面中一样?
标准:
如果只有与BackgroundWorker相对应的UI ...
答案 0 :(得分:2)
yourForm.Enabled = false;
我认为它不能缩短;)
这将禁用表单上的所有控件,但如有必要,您仍然可以更新进度条或标签。
答案 1 :(得分:1)
另一种方式:
第二种形式,首先调用ShowDialog()。通过将参数传递给第二种形式等来处理后台工作者
这将位于您的主表单前面,基本上禁用它。
在第二张表格中,您可以放置繁忙的图片和取消按钮。除非他们取消第二个表单对话框,否则用户无法获得其他表单。
也可以重新使用第二个表单对话框。
答案 2 :(得分:0)
我必须这样做:
total_kills