private void button1_Click(object sender, EventArgs e)
{
ProgressBar pb = new ProgressBar();
this.Controls.Add(pb);
pb.BringToFront();
pb.Minimum = 1;
pb.Maximum = 2;
pb.Value =1;
//pb.Style = ProgressBarStyle.Blocks;
pb.Style = ProgressBarStyle.Continuous;
//pb.Style = ProgressBarStyle.Marquee;
pb.Visible = true;
Application.DoEvents();
pb.Value = 2;
//pb.PerformStep();
//pb.Increment(1);
pb.Update();
pb.PerformLayout();
pb.Refresh();
//第一段
Application.DoEvents();
System.Threading.Thread.Sleep(1000);
//第二段
Application.DoEvents();
System.Threading.Thread.Sleep(1000);
pb.Visible = false;
}
代码如上,很简单的一段
出现的问题是,必须两段DoEvents和Sleep都在,才能看到进度条前进。否则,4句话少一句,就看不到,进度条消失时还是空的
pb.PerformStep();
pb.Increment(1);
pb.Update();
pb.PerformLayout();
pb.Refresh();
三种style都试过,效果完全一致
生成后,拿到一台XP的机器上试了下,能够正常显示
但是本机(Win8.1)和另一台XP上就存在这个问题(另一台不是这个程序,但本人也遇到过这个问题,这次试这个就是原因是想到以前也遇到过)
问一下这是什么情况呢?请教!
解决方案