zoukankan      html  css  js  c++  java
  • DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例

    场景

    Winform控件-DevExpress18下载安装注册以及在VS中使用:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

    在使用ZedGraph进行添加曲线时,曲线数量如果很多的情况下,速度会比较慢。

    所以在进行添加曲线的过程中需要显示进度,效果如下

    注:

    博客主页:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    在当前要添加进度条的页面打开设计器,并在安装了DevExpress的工具箱中拖拽一个ProgressBarControl

     

    然后在当前窗体的构造方法中进行进度条控件的一些属性设置

    public FrmCurveCompareInOne()
            {
                InitializeComponent();
                progressBarControl1.Visible = true;
                //设置一个最小值
                progressBarControl1.Properties.Minimum = 0;
                //设置一个最大值
                progressBarControl1.Properties.Maximum = 100;
                //设置进度条的样式
                progressBarControl1.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
                //当前值
                progressBarControl1.Position = 0;
                //是否显示进度数据
                progressBarControl1.Properties.ShowTitle = true;
                //是否显示百分比
                progressBarControl1.Properties.PercentView = true;
               
            }

    然后在触发显示进度条的方法中传递当前进度条对象

    ChartCompareHelper.RefreshPaneComInOne(this.zedGraphControl1, xYModelStore.YAxisModelList,this.progressBarControl1);

    在上面刷新ZedGraph的图形的方法中,添加曲线的部分进行进度的设置

     if (yList != null && yList.Count > 0)
                {
                    PointPairList list = null;
                    for (int i = 0; i < yList.Count; i++)
                    {
                        //截取前100个循环进行显示
                        Global.Instance.PrepareCompareDataInOne = Global.Instance.PrepareCompareDataInOne.Where(p => (int.Parse(p.Id) < 101)).ToList();
                        //计算进度条步长
                        int step = 1;
                        //曲线总数小于100 
                        if (Global.Instance.PrepareCompareDataInOne.Count < 100)
                        {
                            step = 100 / Global.Instance.PrepareCompareDataInOne.Count;
                        }
                        else
                        {
                            step = Global.Instance.PrepareCompareDataInOne.Count / 100;
                        }
                        if(progressBar !=null)
                        {
                            //将进度条初始化为0%
                            progressBar.Position = 0;
                        }
                        //循环添加曲线
                        foreach(DataTreeNode node in Global.Instance.PrepareCompareDataInOne)
                        {
                            IEnumerable<Entity.Record> record =  Global.Instance.VirtualData.RecordDataList.Where(p => p.CycleIndex == int.Parse(node.Id));
                            list = SetCurveTextInOne(yList[i].TitleKey,record);
                            LineItem myCurve = myPane.AddCurve(yList[i].Title, list, System.Drawing.ColorTranslator.FromHtml(yList[i].Color), SymbolType.None);
                            myCurve.YAxisIndex = i;                                                                 //很关键,对应使用那个坐标值
                            if(progressBar !=null)
                            {
                                //添加成功一条曲线则进度条增加一个步数
                                progressBar.Position += step;
                                if (progressBar.Position >=100)
                                {
                                    //如果总进度已经大于100了 则赋值为100
                                    progressBar.Position = 100;
                                }
                                //更新进度条的进度
                                progressBar.Update();
                            }
                        }
                        if (progressBar != null)
                        {
                            //最终添加完所有曲线后将进度条设置为100%
                            progressBar.Position = 100;
                        }
                    } 
  • 相关阅读:
    nginx 代理概念理解
    nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
    Mybatis-Generator 详解 http://www.cnblogs.com/jtzfeng/p/5254798.html
    web容器线程数和程序中线程阻塞导致 请求超时
    教程-Delphi操作快捷键
    PC-博客首页中增加必应或GOOGLE搜索功能
    PC-大概最全的黑客工具表了
    PC-计算机动行命令里的密密!系统管理程序!
    PC-红警联机问题与下载
    PC-破解RAR软件注册问题
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11883463.html
Copyright © 2011-2022 走看看