方法不显示form2中的进度条

本文关键字:显示 form2 方法 | 更新日期: 2023-09-27 18:01:08

我有一个有两个表单的应用程序。第一个是我完成所有工作的地方,第二个只是用来显示进度条。

我想打开主表单中的第二个。如果我使用

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方法时,我只看到空格,而不是表2中的控件。不仅仅是进度条,我希望form1关闭form2

方法不显示form2中的进度条

首先,您需要向进度条报告进度

 int iProgressPercentage = (int)(dProgressPercentage * 100);
 // update the progress bar
 progressBar1.ReportProgress(iProgressPercentage);

先尝试这样做,然后调用this.close((;

正如我在上面的评论中所说,您需要从这里检查模式对话框Form.ShowDialog方法,我只在那里引用以下表格:

您可以使用此方法在应用程序中显示模式对话框。当调用此方法时,它后面的代码直到对话框关闭后才会执行。

至于为什么你不能在Form2Show();上看到你的ProgressBar,你需要提供更多关于你如何处理它的信息,就好像我把你的程序分成两部分,用两个button click运行它们一样(单击按钮1显示Form2;单击按钮2关闭它(我可以看到你的预期结果:progressbar

如果没有您的进一步信息,我的最佳猜测是运行中的某些东西阻止了Form2更新其GUI。