讨教个关于ProgressBar的问题,进度显示不正常

.Net技术 码拜 4年前 (2017-04-16) 469次浏览
        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上就存在这个问题(另一台不是这个程序,但本人也遇到过这个问题,这次试这个就是原因是想到以前也遇到过)
问一下这是什么情况呢?请教!

解决方案

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教个关于ProgressBar的问题,进度显示不正常
喜欢 (0)
[1034331897@qq.com]
分享 (0)