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上就存在这个问题(另一台不是这个程序,但本人也遇到过这个问题,这次试这个就是原因是想到以前也遇到过)
问一下这是什么情况呢?请教!
解决方案