DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例
程序员文章站
2022-04-02 18:31:39
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243 在使用ZedGraph进行添加曲线时,曲线数量如果很多的情况下,速度会比较慢。 所 ......
场景
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; } }