当前位置: 移动技术网 > IT编程>开发语言>.net > DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例

DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例

2019年11月20日  | 移动技术网IT编程  | 我要评论

死神最新漫画,何方妖孽,输液瓶中现死蚂蚁

场景

winform控件-devexpress18下载安装注册以及在vs中使用:

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

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

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

 

 

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

在当前要添加进度条的页面打开设计器,并在安装了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;
                    }
                } 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网