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 = ;
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();
//注册计时器的事件
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
//设置时间间隔为2秒(2000毫秒),覆盖构造函数设置的间隔
aTimer.Interval = ;
//设置是执行一次(false)还是一直执行(true),默认为true
aTimer.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 = ;//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 = ;//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)); } }