Skip to main content
 首页 » 编程设计

DevExpress之进度条 (转)

2022年07月19日16152php

progressBarControl和marqueeProgressBarControl

一.progressBarControl

progressBarControl是一个进度条控件

几个重要参数

Minimum------------------进度最小数值

Maximum-----------------进度最大数值

Step----------------------每走一步的数值

Position ------------------当前值

EditValue-----------------编辑值

ProgressViewStyle--------样式(其实我没看出什么区别)

ShowTitle-----------------是否显示标题(没有设置显示百分比的时候一般显示value值)

PercentView---------------是否显示百分比(需要ShowTitle为true)

ProgressKind-------------进度条方向(横向/纵向),这只是进度的显示方向,具体控件还要自己把它拉成横向或者纵向

TextOrientation-----------进度条文本显示方向(横向/纵向)

方法

 PerformStep() -----------进度条前进一步

添加两个进度条,一个横向,一个纵向,并初始化一下参数

复制代码
            //水平进度条 
            progressBarControlH.Properties.Minimum = 0; 
            progressBarControlH.Properties.Maximum = 100; progressBarControlH.Properties.Step = 1; progressBarControlH.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBarControlH.Position = 0; progressBarControlH.Properties.ShowTitle = true; progressBarControlH.Properties.PercentView = true; progressBarControlH.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Horizontal; //垂直进度条 progressBarControlV.Properties.Minimum = 0; progressBarControlV.Properties.Maximum = 100; progressBarControlV.Properties.Step = 1; progressBarControlV.Properties.ProgressViewStyle = DevExpress.XtraEditors.Controls.ProgressViewStyle.Solid; progressBarControlV.Position = 0; progressBarControlV.Properties.ShowTitle = true; progressBarControlV.Properties.PercentView = true; progressBarControlV.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Vertical; progressBarControlV.Properties.TextOrientation = DevExpress.Utils.Drawing.TextOrientation.Horizontal;
复制代码

当把进度条设置为纵向的时候一般需要Title或者百分比的显示还是横向的,这样看起来才舒服,所以要设置一下TextOrientation属性

调用代码:

复制代码
            for (int i = 0; i < 100; i++)     
            { 
                 
                 
                System.Threading.Thread.Sleep(120); progressBarControlH.PerformStep(); progressBarControlV.PerformStep(); //progressBarControl1.Position +=1; //progressBarControl1.EditValue = i + 1; //处理当前消息队列中的所有windows消息,不然进度条会不同步  System.Windows.Forms.Application.DoEvents(); } progressBarControlH.EditValue = 0; progressBarControlV.EditValue = 0;
复制代码

让进度条移动有三种方式

1.改变Position的值

2.改变EditValue的值

3.用PerformStep方法

不过要注意的是,这三种方式后面都要加上System.Windows.Forms.Application.DoEvents(),就是每次改变进度的时候都要让windows处理当前队列的消息,以确保进度条同步,否则可能出现进度条的数据更改了,可是进度没有动的情况

二.marqueeProgressBarControl

marqueeProgressBarControl用起来比较简单,但是没有ProgressBarControl的显示进度和百分比的功能

复制代码
       marqueeProgressBarControlH.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Horizontal; 
            marqueeProgressBarControlH.Properties.ShowTitle = true; 
            marqueeProgressBarControlH.Text = "横向读取数据中,请稍等。。。。"; marqueeProgressBarControlV.Properties.ProgressKind = DevExpress.XtraEditors.Controls.ProgressKind.Vertical; marqueeProgressBarControlV.Properties.ShowTitle = true; marqueeProgressBarControlV.Text = "纵向数据读取中,请稍等"; marqueeProgressBarControlV.Properties.TextOrientation = DevExpress.Utils.Drawing.TextOrientation.VerticalUpwards;
复制代码

最后效果

https://www.cnblogs.com/fuhai/p/5276662.html


本文参考链接:https://www.cnblogs.com/xihong2014/p/13412548.html
阅读延展