private void timer_Tick(object sender, EventArgs e) { if (sReader == null) { timer.Stop(); } else { progressBar.Value = (int)(sReader.BaseStream.Position); TimeSpan ts = DateTime.Now - start; double tk = ts.TotalSeconds; double l = sReader.BaseStream.Length; double p = sReader.BaseStream.Position; l = l - p; long stk = (long)(tk * l / p); labelTime.Text = "估计剩余时间:" + TimeSpan.FromSeconds(stk).ToString() + " 已用时间:" + TimeSpan.FromSeconds((long)tk).ToString(); if (th.ThreadState == ThreadState.Stopped) { EndMake(); buttonCancel.Enabled = false; buttonNext.Text = "完成"; buttonNext.DialogResult = DialogResult.OK; buttonNext.Enabled = true; BatchState = BatchMakeState.Maked; } } }
public BatchMake(WordMakeForm wordMakeForm) { WordMakeForm = wordMakeForm; InitializeComponent(); BatchState = BatchMakeState.SelectFile; panelSelectFile.Dock = DockStyle.Fill; panelSelectFile.BringToFront(); }
private void buttonNext_Click(object sender, EventArgs e) { switch (BatchState) { case BatchMakeState.SelectFile: { if (!File.Exists(textBoxINFile.Text)) { MessageBox.Show(this, "指定的文件不存在请从新输入。", "出错了"); textBoxINFile.Focus(); return; } try { sReader = new StreamReader(textBoxINFile.Text); sWriter = new StreamWriter(textBoxOutFile.Text, false, Encoding.UTF8); progressBar.Minimum = progressBar.Value = 0; progressBar.Maximum = (int)(sReader.BaseStream.Length); panelMaking.Dock = DockStyle.Fill; panelMaking.BringToFront(); BatchState = BatchMakeState.Making; timer.Start(); th = new Thread(new ThreadStart(this.Conversion)); th.Name = "BatchMake"; start = DateTime.Now; th.Start(); buttonNext.Enabled = false; } catch (Exception ee) { if (sReader != null) { sReader.Dispose(); } if (sWriter != null) { sWriter.Dispose(); } MessageBox.Show(this, ee.Message, "出错了"); } break; } } }
private void buttonCancel_Click(object sender, EventArgs e) { EndMake(); BatchState = BatchMakeState.Cancel; }
private void timer_Tick(object sender, EventArgs e) { if (sReader == null) { timer.Stop(); } else { progressBar.Value = (int)(sReader.BaseStream.Position); TimeSpan ts= DateTime.Now - start; double tk = ts.TotalSeconds; double l = sReader.BaseStream.Length; double p = sReader.BaseStream.Position; l = l-p; long stk =(long)(tk * l / p); labelTime.Text = "估计剩余时间:" + TimeSpan.FromSeconds(stk).ToString()+" 已用时间:"+TimeSpan.FromSeconds((long)tk).ToString(); if (th.ThreadState == ThreadState.Stopped) { EndMake(); buttonCancel.Enabled = false; buttonNext.Text = "完成"; buttonNext.DialogResult = DialogResult.OK; buttonNext.Enabled = true; BatchState = BatchMakeState.Maked; } } }