要在单击提交按钮时保持我的进度条 运行ning 并冻结屏幕和后台代码应该 运行

To Keep my progress bar running while clicking submit button and to freeze the screen and the background code should run

我需要在单击提交按钮时显示进度条 运行 并冻结屏幕大约 5 秒钟,但提交按钮中的代码应该并行执行这些工作。

我已经创建了一个等待表单,但是一旦连接关闭我就调用了等待表单,这样进度条需要一些时间才能出现,我可以 select 屏幕上不应该出现的其他选项' t.

private void cmdselect_click(System.object _sender System.EventArgs e1)
{
    using (frmwait frm=new frmwait(savedata)) //  and I have called wait form here
    {
        frm.Showdialog(this)
    }
}

// Savedata method

void Savedata()
{
    for(int i=1;i<=500;i++)
    {
        Thread.Sleep(10);
    }
}

点击按钮后进度条不会立即开始。

你可以使用这个:

progressBar.Minimum = 0;
progressBar.Maximum = 500;
progressBar.Value = 0;
progressBar.Step = 1;
progressBar.Refresh();

Enabled = false;               // for UX
Cursor = Cursors.WaitCursor;   // for UX
try
{
  for( int i = 1; i <= progressBar.Maximum; i++ )
  {
    // do process
    progressBar.PerformStep();
    progressBar.Refresh();
    Thread.Sleep(10);
  }
}
finally
{
  Cursor = Cursors.Default;
  Enabled = true;
}

除非您想降低进程速度,否则无需休眠。