场景

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 = ;
//设置一个最大值
progressBarControl1.Properties.Maximum = ;
//设置进度条的样式
progressBarControl1.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid;
//当前值
progressBarControl1.Position = ;
//是否显示进度数据
progressBarControl1.Properties.ShowTitle = true;
//是否显示百分比
progressBarControl1.Properties.PercentView = true; }

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

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

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

 if (yList != null && yList.Count > )
{
PointPairList list = null;
for (int i = ; i < yList.Count; i++)
{
//截取前100个循环进行显示
Global.Instance.PrepareCompareDataInOne = Global.Instance.PrepareCompareDataInOne.Where(p => (int.Parse(p.Id) < )).ToList();
//计算进度条步长
int step = ;
//曲线总数小于100
if (Global.Instance.PrepareCompareDataInOne.Count < )
{
step = / Global.Instance.PrepareCompareDataInOne.Count;
}
else
{
step = Global.Instance.PrepareCompareDataInOne.Count / ;
}
if(progressBar !=null)
{
//将进度条初始化为0%
progressBar.Position = ;
}
//循环添加曲线
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
progressBar.Position = ;
}
//更新进度条的进度
progressBar.Update();
}
}
if (progressBar != null)
{
//最终添加完所有曲线后将进度条设置为100%
progressBar.Position = ;
}
}

DevExpress的进度条控件ProgressBarControl的使用-以ZedGraph添加曲线进度为例的更多相关文章

  1. 在DevExpress GridControl中添加进度条控件 z

    首先可以使用 DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所有的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. ...

  2. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  3. [转载]ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  4. 用 CALayer 定制下载进度条控件

    // // RPProgressView.h // CALayer定制下载进度条控件 // // Created by RinpeChen on 16/1/2. // Copyright © 2016 ...

  5. ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件

    本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...

  6. 【转】用emWin进度条控件做个表盘控件,效果不错

    @2018-08-09 用emWin进度条控件做个表盘控件,效果不错

  7. 为OLED屏添加GUI支持6:进度条控件

    为OLED屏添加GUI支持6:进度条控件 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...

  8. CProgressCtrl进度条控件实现进度滚动效果

    关于CProgressCtrl 控件的基本操作网上有很多资料,可我想实现进度条中进度滚动效果,即很多时候程序出现的等待或启动画面,如下图: 实现这个效果的函数为SetMarquee(_In_ BOOL ...

  9. HslControls组件库 工业控件库 曲线控件 时间控件 管道控件 温度计控件 阀门控件 传送带控件 进度条控件 电池控件 数码管控件等等

    本篇博客主要对 HslControls 组件做一个大概的总览介绍,更详细的内容可以参照页面里的子链接,还有github上的源代码,然后进行相关的学习,和使用. Prepare 先从nuget下载到组件 ...

随机推荐

  1. Python代码编写规范,你真的会吗?

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:yangjiajia123456  最近两年的工作都是和运维相关,有时 ...

  2. TrueTime的安装、运行例程

    一.前言 Truetime的安装是为了完成课程相关需求,但在安装过程中遇到一些问题,想到自己之前注册了博客所以打算把这个作为第一篇的内容.请放心这个的安装过程并不困难,可以放心食用. 二.准备 Tru ...

  3. composer入门 一些简单常用的命令介绍

    composer是什么 composer是PHP的插件依赖管理工具,我个人感觉和java的Maven.Gradle很类似. Windows OS下安装composer 参考: https://www. ...

  4. Android设置EditText不可编辑

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/224 禁用EditText 这个其实很简单,最简单的一种方 ...

  5. 我也开源... React Native Messager

    近期有空,玩转React Native. https://github.com/andyc365/ReactNativeMessager React Native Messager A React N ...

  6. 基于JS的ajax的实现,JSON和JSONP,基于JQuery的ajax的实现

    基于JS的ajax的实现,JSON和JSONP,基于JQuery的ajax的实现1.基于JS的ajax的实现 step1: var xmlhttp = XMLHttprequest() #实例化一个对 ...

  7. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)

    0. 前言 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动: 此安装是在 Intel 集显下的图形化界面,即用集显做 display, ...

  8. 创建mysql索引的方式

    创建索引方式: 1.create index 索引名   on 表名 (字段) 2.alter table 表  add index 索引名  (字段) -- 普通索引 alter table 表名 ...

  9. 老版本nginx存在安全漏洞,不停服务热升级

    1.场景描述 安全部通知:nginx存在"整数溢出漏洞",经测试2017年4月21日之后的版本无问题,将openresty升级到最新版本,Nginx升级到1.13.2之后的版本. ...

  10. 极客必备 Chrome 浏览器插件

    本文微信公众号「AndroidTraveler」首发. 自己平时使用的最多的就是 Chrome 浏览器,因此本文主要分享自己添加的一些扩展程序. 介绍扩展程序的时候也是以我本人的实际使用为主,有些功能 ...