demo 的实现图
下边是步骤和代码
1定义 时钟事件,定时的增加进度条的增量.
2: 添加进度条
3;定义字段属性
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers; using System.Windows.Forms;namespace ProgressBar {public partial class Form1 : Form{public Form1(){InitializeComponent();jindu = new JinduModel();jindu.jindu = 0;rarlist = new BindingList<JinduModel>();rarlist.Add(jindu);gridControl1.DataSource = rarlist;InitGridcontrol();}JinduModel jindu;// BindingSource bs;BindingList<JinduModel> rarlist;void InitGridcontrol(){// new System.Timers.Timer//实例化Timer类,设置间隔时间为10000毫秒; aTimer = new System.Timers.Timer(1000);//注册计时器的事件aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);//设置时间间隔为2秒(2000毫秒),覆盖构造函数设置的间隔aTimer.Interval = 2000;//设置是执行一次(false)还是一直执行(true),默认为trueaTimer.AutoReset = true;//开始计时aTimer.Enabled = true;}//指定Timer触发的事件private void OnTimedEvent(object source, ElapsedEventArgs e){this.Invoke( new Action(()=> jindu.jindu++));Console.WriteLine("触发的事件发生在: {0}", e.SignalTime);}//Timer不要声明成局部变量,否则会被GC回收private static System.Timers.Timer aTimer;private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e){if (e.Column.FieldName == "count"){int count = 10000;//Convert.ToInt32(System.Math.Ceiling(zipfileInfo.Length / 1024.0));//datalist[0].count;//(int)this.gridView1.GetRowCellValue(e.RowHandle, "Count");int index = (int)e.CellValue;e.DisplayText = string.Format("{0}/{1}", index, count);}}private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e){if (e.Column.FieldName == "count"){// int count = (int)this.gridView1.GetRowCellValue(e.RowHandle, "count");// int index = (int)e.CellValue;repositoryItemProgressBar1.Maximum = 10000;//Convert.ToInt32(System.Math.Ceiling(zipfileInfo.Length / 1024.0));//datalist[0].count;//count;e.RepositoryItem = repositoryItemProgressBar1;}}}}
class JinduModel : INotifyPropertyChanged{private int _jindu;public int jindu{get { return _jindu; }set { _jindu = value; OnPropertyChanged("jindu"); }}public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged(string name){ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); }}