zoukankan      html  css  js  c++  java
  • 自定义通用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专案即可。

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

     
  • 相关阅读:
    经典测试面试题一
    自定义函数实现字符串数组互转
    php 实现密码错误三次锁定账号10分钟
    HTTP状态码
    Linux知识点
    慢查日志
    curl 采集
    HTTP协议
    docker配置
    mysql数据库索引、存储引擎、事务
  • 原文地址:https://www.cnblogs.com/itshare/p/2820674.html
Copyright © 2011-2022 走看看