自定义通用WinForm进度条ITSProgramBar

一、运行效果:

有图有真相,大家先睹为快。

二、开发需求:

1、WinForm下使用的进度条用户控件。

2、调用位置,用户不需要自己写多线程处理代码来控制UI显示和后台业务执行。

3、代码通用,开发者可以在其他窗体通过“传入参数”和“调用函数”来实现“进度条显示”。

4、进度条接受后台处理函数和界面刷新函数作为“传入参数”。

5、进度条接受用户后台业务代码中发送到“进度显示消息”和“终止进度消息”。

6、进度条接受异步刷新主窗体界面UI和进度条UI界面UI,并且这个过程显示是准确一致的。

三、接口定义

1、主要字段

View Code
/// <summary>
        /// 后台业务处理的函数接口
        /// </summary>
        public Func<object, object> DoWork_Func = null;

        /// <summary>
        /// 后台业务处理的函数接口参数
        /// </summary>
        public object DoWork_FuncParam = null;

        /// <summary>
        /// 前台界面刷新的函数接口
        /// </summary>
        // public Action UIShow_Func = null;
        public Action<object> UIShow_Func = null;

2、进度控制

View Code
        /// <summary>
        /// 启动进度条
        /// </summary>
        public void StartRun()
 
        /// <summary>
        /// 暂停进度条
        /// </summary>
        public void PauseRun()
 
        /// <summary>
        /// 终止进度条
        /// </summary>
        public void StopRun()
 
        /// <summary>
        /// 接收外部发送的“执行进度的消息”
        /// </summary>
        /// <param name="percent"></param>
        /// <param name="msg"></param>
        public void SendRunMsg(int percent, string msg)
         
        /// <summary>
        /// 接收外部发送的“终止进度的消息”
        /// </summary>
        /// <param name="msg"></param>
        public void SendStopMsg(string msg)
   
        /// <summary>
        /// 进度条是否终止
        /// </summary>
        /// <returns></returns>
        public bool IsStop()
 

3、修改样式

View Code
        /// <summary>
        /// 设置进度条标题
        /// </summary>
        /// <param name="title"></param>
        public void SetTitle(string title)
     
        /// <summary>
        /// 设置进度条状态显示前台颜色
        /// </summary>
        /// <returns></returns>
        public void SetForeColor(int alpha, int red, int green, int blue)
         
        /// <summary>
        /// 设置进度条状态显示背景颜色
        /// </summary>
        /// <returns></returns> 
        public void SetBackColor(int red, int green, int blue)
        

4、前台调用

View Code
        private void Start_Click(object sender, EventArgs e)
        {
            MyBar.SetTitle("任务执行进度如下显示"); // 设置进度条标题
            MyBar.SetForeColor(0, 173, 208, 3); // 设置进度条前台颜色
            MyBar.SetBackColor(255, 255, 255); // 设置进度条背景颜色
            MyBar.DoWork_Func = this.DoWork; // 指定进度条后台业务处理函数
            MyBar.DoWork_FuncParam = 10000 * 1; // 指定进度条后台业务处理函数的入口参数
            MyBar.UIShow_Func = this.UIShow; // 指定进度条前台UI界面显示函数
            MyBar.StartRun(); // 启动进度条
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            if (MyBar != null)
            {
                MyBar.StopRun(); // 终止进度条
            }
        }

四、使用说明

该进度条使用的时候,只需要把dll文件引入其他WinForm专案即可。

剩下的工作,就是在主界面的后台进行参数初始化和调用接口方法,就可以了。

 
原文地址:https://www.cnblogs.com/itshare/p/2820674.html