这是我第一次使用进度条。我无法在进度条中看到进度指示。我写了以下代码。
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Maximum = 1000000;
progressBar1.Value = 0;
progressBar1.Step=10;
Int64 i = 10000000000;
while (i != 1)
{
i = i / 10;
System.Threading.Thread.Sleep(1000);
progressBar1.Increment(10);
}
}
}
}
我看不到进度条中显示的任何进度。请给我一个解决方案
答案 0 :(得分:2)
最多尝试100;)
使用/ 10,你不会运行100000(1000000 /步10)。你会做10;)
答案 1 :(得分:1)
您对进度条的基本使用是正确的,但是您的某些其他值有些奇怪。事实上,你的代码将部分工作,但循环将在完成进度条之前完成(我的快速计算表明,即使你的循环继续,也需要大约28分钟才能完成填充栏!))
换句话说,您可能只是没有看到进度条中的更改,因为它太小了!
稍加修改可能会略微改进示例,并显示进度条按预期工作(并且比原始代码快一点)。
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Maximum = 10; // Smaller number of steps needed
progressBar1.Value = 0;
progressBar1.Step = 1;
Int64 i = 10000000000;
while (i != 1) // This will require 10 iterations
{
i = i / 10;
System.Threading.Thread.Sleep(1000);
progressBar1.Increment(1); // one step at a time
}
}