C# 单击“提交”按钮时保持进度条运行,并冻结屏幕和后台代码

C# 单击“提交”按钮时保持进度条运行,并冻结屏幕和后台代码,c#,winforms,progress-bar,C#,Winforms,Progress Bar,我需要在点击submit按钮时运行进度条,并将屏幕冻结约5秒钟,但submit按钮中的代码应该并行完成这项工作 我已经创建了一个等待表单,但是一旦连接关闭,我就调用了等待表单,这样进度条就会花时间出现,我可以在屏幕上选择其他不应该出现的选项 private void cmdselect\u单击(System.object\u sender System.EventArgs e1) { 使用(frmwait frm=new frmwait(savedata))//我在这里调用了wait form

我需要在点击submit按钮时运行进度条,并将屏幕冻结约5秒钟,但submit按钮中的代码应该并行完成这项工作

我已经创建了一个等待表单,但是一旦连接关闭,我就调用了等待表单,这样进度条就会花时间出现,我可以在屏幕上选择其他不应该出现的选项

private void cmdselect\u单击(System.object\u sender System.EventArgs e1)
{
使用(frmwait frm=new frmwait(savedata))//我在这里调用了wait form
{
frm.Showdialog(此)
}
}
//保存数据方法
void Savedata()
{
对于(int i=1;i,您可以使用:

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;
}
progressBar.Minimum=0;
最大值=500;
progressBar.Value=0;
progressBar.Step=1;
progressBar.Refresh();
Enabled=false;//对于UX
Cursor=Cursors.WaitCursor;//用于UX
尝试
{

对于(int i=1;i在点击progressbar.Value=0时,它会抛出一个system.argumentnullexception,表示值不能为null。如何创建该条?由设计器在表单上删除它,还是由代码创建,并且是在使用之前创建的?由设计器创建,我在另一个表单中尝试访问它。是否更改了其他表单构造函数?它必须已更改InitializeComponents首先调用。是的,对,我必须在那里更改的是InitializeComponent(),如果(worker==null){throw argument null exception}我目前正在使用我在观看此视频后创建的弹出进度条:-。我刚刚意识到我在stackoverflow中共享了我的代码回答:-我通过观看此视频也做了相同的操作。我回去查看了我的代码,我调用的进度条形式与您完全相同。我的进度条立即出现,因此我认为问题一定是我n进度条表单的代码。