有一个progressBar,以下的代码是显示其进度百分比的,代码调式过没有错误,但是现在有个小问题:如果进度太快的话,百分比数字会重叠且闪烁的厉害,应该怎么解决?我想到的办法是,每一次DrawString之前先清空掉原来的文本,但不知道该怎么清空法,望各位高手指教; //显示进度
            string strText = this.progressBar1.Value * 100 / progressBar1.Maximum + "%";
            Font font = new Font("微软雅黑", (float)10, FontStyle.Regular);
            PointF pointF = new PointF(this.progressBar1.Width / 2 - 10, this.progressBar1.Height / 2 - 10);            
            this.progressBar1.CreateGraphics().DrawString(strText, font, Brushes.Black, pointF);

解决方案 »

  1.   

    那是你控制不好,绘图代码写到OnPaint事件, Invalidate会引发重绘
      

  2.   

    System.Windows.Forms.Application.DoEvents();
      

  3.   

    progressBar没有OnPaint事件呀,难道是版本不同?
      

  4.   

     this.progressBar1.CreateGraphics().DrawString(strText, font, Brushes.Black, pointF);
    给你提个建议(用之一即可):(1)减少刷新的次数,如:1.5和1在进度条上本来就没有区别 
    (2)优化下刷新代码,如doublebuffer, stretchbitmap等。
      

  5.   

    清空画布
    Graphics.Clear(BackColor)