触发新窗口时关闭进度条

时间:2013-12-03 11:05:20

标签: c# .net winforms

我有两种形式。 MainFormProductDetailForm

MainForm内,有txtSearchBox输入框和一些无线电值来过滤搜索。搜索正在执行时显示progressbar。最初进度条设置为Visible = false;

在btnSearch点击事件我正在调用background_worker来执行搜索。 Immediatly进度条设置为Visible = true。

当找到数据并在MainForm上打开新窗口(ProductDetailForm)时,progressBar仍然可见,所以我的问题是如何在打开新窗口时将Visible设置为false。

private void bntSearch_Click(object sender, EventArgs e)
{
   progressBarControll.Visible = true;
   backgroundWorker1.RunWorkerAsync();
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{   
   MyData data = repository.GetData(1);
   // tried here  progressBarControll.Visible = false;
   // but it raises an exception
   var detailsForm = new ProductDetailForm(data);

}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
     progressBarControll.Visible = false;
}

1 个答案:

答案 0 :(得分:1)

您可以同时打开新表单并将进度条隐藏到RunWorkerCompleted方法:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{   
   MyData data = repository.GetData(1);
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
     progressBarControll.Visible = false;
     var detailsForm = new ProductDetailForm(data);
}