C#进度显示的简单实现

来源:互联网 发布:编程器哪个牌子的好 编辑:程序博客网 时间:2024/05/18 03:37

// C#查询SQL Server数据库创建并填充Excel文件续;


进度条Form非常简单,只是实现了进度显示的功能。



这里使用了BackgroundWorker,这个类的使用参考BackgroundWorker 类;


Form form = new Form();                            ProgressBar pbc = new ProgressBar();                            Label lab = new Label();                            form.Size = new System.Drawing.Size(360, 80);                            form.TopMost = true;                            form.FormBorderStyle = FormBorderStyle.Fixed3D;                            form.AutoSizeMode = AutoSizeMode.GrowAndShrink;                            form.StartPosition = FormStartPosition.CenterParent;                            form.Controls.Add(pbc);                            form.Controls.Add(lab);                            pbc.Size = new System.Drawing.Size(280, 80);                            pbc.Dock = DockStyle.Left;                            pbc.Maximum = 10000;                            pbc.Minimum = 0;                            lab.Dock = DockStyle.Right;                            lab.TextAlign = System.Drawing.ContentAlignment.MiddleRight;                            lab.Text = "0%";                            BackgroundWorker bgw = new BackgroundWorker() { WorkerReportsProgress = true };                            bgw.DoWork += (bwsender, bwe) =>                            {                                ExcelIE excel = new ExcelIE();                                excel.ReportProgress += bgw.ReportProgress;                                //******                                                            };                            bgw.ProgressChanged += (bwsender, bwe) =>                            {                                pbc.Value = bwe.ProgressPercentage;                                lab.Text = string.Format("{0}%", bwe.ProgressPercentage / 100.0);                            };                            bgw.RunWorkerCompleted += (bwsender, bwe) =>                            {                                 form.Close();                            };                            bgw.RunWorkerAsync();                            form.Show();

此外在ExcelIE类中增加了事件:

public event System.Action<int> ReportProgress;
0 0
原创粉丝点击