C#winforms进度条

C#winforms进度条,c#,winforms,progress-bar,C#,Winforms,Progress Bar,我想要一个进度条来显示剩下要执行的方法的百分比。正在执行的方法是ms测试。当用户单击按钮时,ms测试 执行,我想显示一个进度条。ms测试是选定工作流的列表。我有一个方法可以获取所选工作流的列表-是否 进度条将显示selecte工作流列表的百分比 目前,我有一个进度条,显示05仅一秒钟,然后显示一个流动的绿色条。这是我在Run ms test按钮后面的代码 RunTestsProgressBar.Refresh(); int percent = (int)(((double)Run

我想要一个进度条来显示剩下要执行的方法的百分比。正在执行的方法是ms测试。当用户单击按钮时,ms测试 执行,我想显示一个进度条。ms测试是选定工作流的列表。我有一个方法可以获取所选工作流的列表-是否 进度条将显示selecte工作流列表的百分比

目前,我有一个进度条,显示05仅一秒钟,然后显示一个流动的绿色条。这是我在Run ms test按钮后面的代码

RunTestsProgressBar.Refresh();
        int percent = (int)(((double)RunTestsProgressBar.Value / (double)RunTestsProgressBar.Maximum) * 100);
        RunTestsProgressBar.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new PointF(RunTestsProgressBar.Width / 2 - 10, RunTestsProgressBar.Height / 2 - 7));

当我过去不得不做这些事情时,我通常使用BackgroundWorker并使用其ReportProgress()方法在UI线程上触发ProgressChanged事件

如果您知道要执行多少测试,并且可以在每个测试完成后调用UpdateProgress,我认为这是一个很好的方法

下面是一个链接,指向一个简单易懂的示例


您打算在另一个线程上执行此工作吗?否则,当您的方法正在逐步执行时,您的进度条将不会在UI中更新。该方法已在后台线程上运行。我是否为进度条使用其他线程?您只能在主(UI)线程上修改UI。您必须从后台线程调用主线程上的方法。听起来您正在将ProgressBar的Style属性设置为Marquee。尝试将其设置为“阻止”或“连续”。