【发布时间】:2011-07-04 08:23:16
【问题描述】:
我有一个包含 2 个表单的应用程序。第一个是我完成所有工作的地方,第二个只是用于显示进度条。
我想从主窗体打开第二个。如果我使用
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
【问题讨论】:
-
您需要提供更多代码
-
你是如何告诉你的 form2 在完成后关闭的?
-
我编辑了关于如何关闭 form2 的问题
-
尝试只调用
this.Close();而不调用Dispose(),看看是否有帮助。 -
而不是设置一个公共静态(全局状态通常是一个坏主意),为什么不简单地在表单上调用 close 呢?然后丢弃它
标签: c# .net winforms progress-bar modal-dialog