当前位置: 代码迷 >> C# >> winForm progressBar解决方案
  详细解决方案

winForm progressBar解决方案

热度:298   发布时间:2016-05-05 02:56:07.0
winForm progressBar
本帖最后由 besienlin 于 2015-09-14 11:20:36 编辑
假使我要插入10000笔资料,
maximun=100



    public partial class TestFm :Form
    {
       TESTEntities context = new TESTEntities();     
        public TestFm()
        {
            InitializeComponent();
        }
    
        private void btnOK_Click(object sender, EventArgs e)
        {
            this.btnOK.Enabled = false;
            this.btnCancel.Enabled = true;
            backgroundWorker1.RunWorkerAsync();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 0; i <= 10000; i++)
            {
                System.Threading.Thread.Sleep(100);
                context.test.AddObject(new test
                {
                    ID = i.ToString(),
                    NAME = i.ToString()
                });
                backgroundWorker1.ReportProgress(i);
            }
        }


        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
            lblStatus.Text = "Processing......" + progressBar1.Value.ToString() + "%";
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {                   
            if (e.Error != null)
            {
                MessageBox.Show(e.Error.Message);
            }
            else if (e.Cancelled)
            {
                lblStatus.Text = "取消";
            }
            else
            {
                lblStatus.Text = e.Result.ToString();
                context.SaveChanges();
            }

            btnOK.Enabled = true;
            btnCancel.Enabled = false;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            backgroundWorker1.CancelAsync();
            btnCancel.Enabled = false;
        }
    }
------解决思路----------------------
每100个资料  progressBar1.Value += 1
  相关解决方案