C# 进度条设置

一、ProgressBar

	/// <summary>
   /// winform窗体进度条空间progressBar帮助类
   /// </summary>Bar
   public class ProgressHelper
   {
       public System.Windows.Forms.Label m_LabTip = null;
       public System.Windows.Forms.Label m_LabPercent = null;
       public System.Windows.Forms.ProgressBar m_Progress = null;

       /// <summary>
       /// 初始化进度条参数设置
       /// </summary>
       /// <param name="iMin">进度最小值</param>
       /// <param name="iMax">进度最大值</param>
       /// <param name="sNote">进度提示</param>
       public void InitProgress(int iMax, string sNote = "")
       {
           if(m_Progress!=null)
           {
               m_Progress.Visible = true;
               m_Progress.Minimum = 0;
               m_Progress.Maximum = iMax;
               m_Progress.Step = 1;
           }
           if(m_LabTip!=null)
           {
               m_LabTip.Visible = true;
               m_LabTip.Text = sNote;
           }
           SetPercentTip();
           Application.DoEvents();
       }

       public void StepGo(string sNote)
       {
           if (m_Progress != null)
           { 
               m_Progress.PerformStep();
           }
           if (m_LabTip != null)
           {
               m_LabTip.Text = sNote;
           }
           SetPercentTip();
           Application.DoEvents();
       }

       public void CompleteStep(string sNote)
       {
           if (m_Progress != null)
               m_Progress.Step = m_Progress.Maximum;
           if (m_LabTip != null)
               m_LabTip.Text = sNote;
           SetPercentTip();
           Application.DoEvents();
       }

       private void SetPercentTip()
       {
           if(m_LabPercent!=null && this.m_Progress!=null)
           {
               double dValue = Convert.ToDouble(Convert.ToDouble(this.m_Progress.Value) / Convert.ToDouble(this.m_Progress.Maximum));
               dValue = Math.Round(dValue,2,MidpointRounding.AwayFromZero);
               m_LabPercent.Text = string.Format("{0}%", dValue*100);
               Application.DoEvents();
           }
       }

   }

二、progressBarControl

#region 进度条
progressBarControl1.Visible = true;
//设置一个最小值
progressBarControl1.Properties.Minimum = 0;
//设置一个最大值
progressBarControl1.Properties.Maximum = 100;
//设置步长,即每次增加的数
progressBarControl1.Properties.Step = 1;
//设置进度条的样式
progressBarControl1.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
//当前值
progressBarControl1.Position = 0;
//是否显示进度数据
progressBarControl1.Properties.ShowTitle = true;
//是否显示百分比
progressBarControl1.Properties.PercentView = true;
#endregion
for (int i = 0; i < rowCount; i++)
{
	Application.DoEvents();
	progressBarControl1.Position += 1;
}

跨页面,类传参,防止进度条假死 设置线程

		/// <summary>
		 /// 进度条
		 /// </summary>
		 private static ProgressBarControl m_ProgressBarControl = null;
		 /// <summary>
		 /// 提示信息
		 /// </summary>
		 private static LabelControl m_Labtip = null;
		 /// <summary>
		 /// 提示索引
		 /// </summary>
		 private static LabelControl m_LabIndex = null;
		 public static void InitData(ProgressBarControl pProgressBarControl, LabelControl labtip, LabelControl pLabIndex)
		 {
			   m_Labtip = labtip;
		       m_LabIndex = pLabIndex;
		       m_ProgressBarControl = pProgressBarControl;
		       //1.设置上述进度条属性。
		       m_ProgressBarControl.Properties.Maximum = 100;
		       m_ProgressBarControl.Properties.Minimum = 0;
		       m_ProgressBarControl.Properties.Step = 1;
		       m_ProgressBarControl.Properties.ShowTitle = true; 
		 
				 //2.调用
				int step=0;
				changedProcess("进度提示",step++)
				int pIndex=0;
			    changeLabIndex(int pIndex)
		 }
 		/// <summary>
        /// 更新进度
        /// </summary>
        /// <param name="pSortNum"></param>
        /// <param name="pProgress"></param>
        private static void changedProcess(string showInfo, int pProgress)
        { 
            m_ProgressBarControl.EditValue = pProgress; 
            m_Labtip.Text = showInfo;
            Application.DoEvents();
        }
        /// <summary>
        /// 文字提示索引
        /// </summary>
        /// <param name="pIndex"></param>
        private static void changeLabIndex(int pIndex)
        {
            labcontrol.Text = pIndex.ToString();
            Application.DoEvents();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值