private void Manager_SpliterCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error, Handle); MessageBox.Show(e.Error.Message, "Ошибка разделения файла", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (e.Cancelled) { lblStatus.Text = $"Отменено. Обработано {manager.ItemsSaved} из { manager.ItemsNumber}"; } else { string message = $"Завершено успешно. Создано {manager.ItemsSaved} файлов."; MessageBox.Show(message, "Завершено", MessageBoxButtons.OK, MessageBoxIcon.Information); SplitFileParameters p = e.Result as SplitFileParameters; System.Diagnostics.Process.Start(System.IO.Path.GetDirectoryName(p.FilePath)); lblStatus.Text = "Обработка файла завершена"; this.PrevFinishedParameters = p; } SetControlsEnabled(true); btnStart.Enabled = true; btnStart.Text = "Начать"; pbProgress.Style = ProgressBarStyle.Continuous; TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress, Handle); this.manager = null; if (this.WaitForFinishingToExit) { Application.Exit(); } }
private void btnStart_Click(object sender, EventArgs e) { var b = sender as Button; if (b.Text == "Отмена") { if (this.manager != null && manager.IsBusy) { b.Enabled = false; pbProgress.Style = ProgressBarStyle.Marquee; TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate, Handle); this.manager.CancelAsync(); } } else { try { SplitFileParameters param = GetSplitFileParameters(); if (param.Equals(this.PrevFinishedParameters)) { const string mess = "Вы хотите порезать файл с теми же параметрами, как резали до этого. Вероятно, результат будет такой же.\n\nВы хотите продолжить?"; if (MessageBox.Show(mess, "Повторить?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } b.Text = "Отмена"; SplitFile(param); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void SplitFile(Office.SplitFileParameters splParams) { SetControlsEnabled(false); manager = new Office.SplitManager(mnuUseMultiThreads.Checked); manager.ProgressChanged += Manager_ProgressChanged; manager.SpliterCompleted += Manager_SpliterCompleted; groupBox4.Enabled = true; this.PrevFinishedParameters = null; TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal, Handle); TaskbarManager.Instance.SetProgressValue(0, 100, Handle); manager.StartSplit(splParams); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (object.ReferenceEquals(this, obj)) { return(true); } SplitFileParameters other = obj as SplitFileParameters; if (other == null) { return(false); } return(this.FilePath == other.FilePath && this.SheetIndex == other.SheetIndex && this.ColumnSplit == other.ColumnSplit && this.RowBegin == other.RowBegin && this.RowEnd == other.RowEnd); }