我有两种形式。 MainForm
和ProductDetailForm
在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;
}
答案 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);
}