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专案即可。

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

     
  • 相关阅读:
    在【Xamarin+Prism开发详解三:Visual studio 2017 RC初体验】中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很是感兴趣。于是发时间深入研究了一下Visual Studio 2017RC 是不是和微软Connect()://2016上说得一样神。
    .NET(C#):await返回Task的async方法
    【笔记】关于汉字注音 汉字转拼音,首拼
    MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)
    在Asp.net MVC使用jqGrid--代码少点再少点
    jQuery Grid With ASP.Net MVC
    MVC权限控制
    MVC数据库数据分页显示
    NPOI对Excel的操作(Sheet转DataTable、List<T>)
    基于FormsAuthentication的用户、角色身份认证
  • 原文地址:https://www.cnblogs.com/itshare/p/2820674.html
Copyright © 2011-2022 走看看