我有一个有两种表格的应用程序。第一个是我完成所有工作的地方,第二个是用于显示进度条。
我想从主窗体中打开第二个。如果我使用
Form2 newForm = new Form2();
newForm.Show();
Form2
在需要打开和关闭时打开和关闭,但我看不到进度条。我只能看到一个空白而不是它。
当我使用
时Form2 newForm = new Form2();
newForm.ShowDialog();
我可以看到进度条,但Form2
在需要时不会关闭。它永远运行,我该怎么办?
我使用静态公共变量closeForm来关闭第二个表单。当我需要关闭我设置的表格时
closeForm = true;
在第二种形式中,我有一个计时器
private void timer1_Tick(object sender, EventArgs e)
{
if (Form1.closeForm)
{
this.Dispose();
this.Close();
return;
}
else
{
progVal++;
progressBar1.Value = (progVal % 100);
}
}
这是我放置ProgressBar值并关闭表单的地方。
当我使用show方法时,我只看到空格而不是form2中的控件。不只是进度条,我希望form1
关闭form2
答案 0 :(得分:0)
首先,您需要向进度条报告进度
int iProgressPercentage = (int)(dProgressPercentage * 100);
// update the progress bar
progressBar1.ReportProgress(iProgressPercentage);
首先尝试这样做,然后调用this.close();
答案 1 :(得分:0)
正如我在评论中所说,你需要从这里Form.ShowDialog Method检查模态对话框,我只是在那里引用以下表格:
您可以使用此方法在应用程序中显示模式对话框。调用此方法时,直到关闭对话框后才会执行其后面的代码。
为什么您无法在ProgressBar
Form2
上看到Show();
button click
,您需要提供有关如何处理它的更多信息,就像我将您的计划分为两部分一样使用两个Form2
来运行它们(点击按钮1显示progressbar
;然后点击button2关闭它)我可以看到您的预期结果:{{1}}。
如果没有您的进一步信息,我最好的猜测是运行阻止Form2更新其GUI。