Devexpress-进度条

阿怅

 

随笔 - 7  文章 - 0  评论 - 7

Devexpress-进度条

Devexpress控件中,进度条控件为ProgressBarControl, 在数据型控件中进度条为RepositoryItemProgressBar.

 

     常用的设置

  •   样式或者皮肤
  •   进度设置
  •   进度文字显示

 

  样式或者皮肤

   进度控件的默认颜色是无法直接更改的,因为显示的优先是样式和皮肤,只有设置不使用默认主题就可以进行改变了.

  

progressbar.LookAndFeel.UseDefaultLookAndFeel = false;

 

  进度设置

  进度的三要素:最大值 当前值 递增量

  

progressbar.Maximum = 200;   //总进度
progressbar.Step=1; //进度的递增量
progressbar.Text="55"; //当前进度

 

  进度文字显示

  进度条在展示进度的同时,还可以显示百分比(可格式化精度)或详细进度,亦可自定义显示

  

progressbar.ShowTitle = true; //允许显示文字
progressbar.PercentView=true;//true显示百分比(默认),false显示详细进度

      如下显示:

  Devexpress-进度条_第1张图片

 

  关于在数据绑定型控件中

  有的时候每行的进度的最大值都是不同的,而在进度到达某一范围需要显示不同的样式.这里我们就需要手动去设置数据对应我们预先定义好的RepositoryItemProgressBar

 

  下面是一个简单例子:

  

复制代码

 1 public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6             this.Load += new EventHandler(Form_Load);
 7         }
 8 
 9         Timer timer = new Timer();
10         RepositoryItemProgressBar progressbar = new RepositoryItemProgressBar();
11 
12         private void Form_Load(object sender, EventArgs e)
13         {
14             progressbar.LookAndFeel.UseDefaultLookAndFeel = false;
15             progressbar.ShowTitle = true;
16             //皮肤,这里使用的Dev自带的几款皮肤之一
17             progressbar.LookAndFeel.SkinName = "Money Twins";
18             //progressbar.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Office2003;
19 
20             InitData();
21             timer.Interval = 100;
22             timer.Tick += new EventHandler(timer_Tick); 
23             timer.Start();
24         }
25 
26         private void timer_Tick(object sender, EventArgs e)
27         {
28             objects.ForEach(x =>{
29                 if (x.Index < x.Count) x.Index++;
30                 else x.Index = 0;
31             });
32             this.gridControl.RefreshDataSource();
33         }
34 
35         private List objects = new List();
36 
37         public void InitData()
38         {
39             objects.Clear();
40             objects.Add(new TestObject() { ID="A0001",Name="Francis",Count=100,Index=0});
41             objects.Add(new TestObject() { ID = "A0002", Name = "Andy", Count = 1000, Index = 0 });
42             objects.Add(new TestObject() { ID = "A0003", Name = "Tom", Count = 20, Index = 0 });
43             objects.Add(new TestObject() { ID = "A0004", Name = "Achang", Count = 50, Index = 0 });
44             this.gridControl.DataSource = objects;
45             this.gridView.Columns["Count"].Visible = false;
46             this.gridView.Columns["Index"].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
47         }
48 
49         private void gridView_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
50         {
51             if (e.Column.FieldName == "Index")
52             {
53                 int count = (int)this.gridView.GetRowCellValue(e.RowHandle, "Count");
54                 int index = (int)e.CellValue;
55                 progressbar.Maximum = count;
56                 e.RepositoryItem = progressbar;
57             }
58         }
59 
60         private void gridView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
61         {
62             if (e.Column.FieldName == "Index")
63             {
64                 int count = (int)this.gridView.GetRowCellValue(e.RowHandle, "Count");
65                 int index = (int)e.CellValue;
66                 e.DisplayText = string.Format("{0}/{1}",index,count);
67             }
68         }
69     }
70 
71     public class TestObject
72     {
73         public string ID { get; set; }
74         public string Name { get; set; }
75         public int Count { get; set; }
76         public int Index { get; set; }
77     }

复制代码

 

  显示效果如下:

  Devexpress-进度条_第2张图片

  

  下载地址如下: 进度条 

 

 

你可能感兴趣的:(C#)