Beispiel #1
0
 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();
     }
 }
Beispiel #2
0
        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); }
            }
        }
Beispiel #3
0
        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);
        }