【发布时间】:2012-11-27 07:18:27
【问题描述】:
我有 windows 应用程序,我需要在其中将数据保存到数据库中,保存数据后加载水晶报告以显示报告,所有这一切都发生在单击保存按钮时。
我有一个名为 btn_Submit 的按钮单击此数据被保存并显示报告,同时保存它需要时间,所以我想同时显示进度条,以便用户了解该数据正在处理中。我该如何处理这个 Windows 应用程序。
我浏览了这个链接http://www.codeproject.com/Tips/83317/BackgroundWorker-and-ProgressBar-demo,但没有得到我想要的。
我知道后台工作人员,但从未使用过。
我已经使用了上面链接中给出的后台工作程序和进度条,但进度条一旦启动就不会停止。
任何人都可以帮助我吗?你能给出任何演示场景的示例或链接吗?
我在 Dowork() 上添加的这段代码;
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
PrintData arg = (PrintData)e.Argument;
SalesMaster sm = arg.SalesData;
BrokerMaster bm = arg.Broker;
CustomerMaster ctm = arg.Customer;
CompanyMaster cm = arg.Company;
ArrayList hb = arg.Arrardata;
int totunit = arg.totunit;
decimal globalamt = arg.golbamt;
SalesReport sreport = new SalesReport(sm, ctm, cm, bm, hb, totunit, glb_totalamt);
sreport .MdiParent = arg.parentf;
sreport .WindowState = FormWindowState.Maximized;
sreport .Show();
}
我在这一行得到错误 sreport .MdiParent = arg.parentf;
这个错误:
Cross-thread operation not valid: Control 'frmParent' accessed from a thread other than the thread it was created on.
这里应该做什么?
【问题讨论】:
-
您是否将报告保存为一个大的保存操作(进度条仅显示后台发生的事情),或者您有几个保存步骤应该由进度条反映(进度条显示实际操作百分比完成)?
-
不,它不需要显示完成了多少的百分比,只是想显示加载或请在后台工作完成时等待标记类型
标签: c# winforms progress-bar backgroundworker