private void BackgroundWorkerSchedules_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (BackgroundWorkerSchedules.IsBusy)
            {
                return;
            }

            if (!isCancelled)
            {
                this.Hide();
                Debug.WriteLine("THERE ARE " + resultSchedules.Count() + " COURSES TO SHOW!");
                if (resultSchedules.Count() != 0)

                {
                    if (RefToResultLoadForm == null)
                    {
                        Debug.WriteLine("NEW RESULT FORM SHOWN");
                        RefToResultLoadForm = new LoadingResultsForm(selectedCourses, resultSchedules, RefToCourseSelectForm);
                    }
                    else
                    {
                        Debug.WriteLine("OLD RESULT FORM SHOWN! IT IS " + (isOptimization == true ? "OPTIMIZED" : "NOT OPTIMIZED"));
                        RefToResultLoadForm.ShowNewScheduleSet(selectedCourses, resultSchedules, isOptimization);
                    }

                    this.Hide();
                    if (!RefToResultLoadForm.Visible)
                    {
                        Debug.WriteLine("Result Form is NOW VISIBLE!");
                        RefToResultLoadForm.ShowDialog();
                    }
                }
                RefToCourseSelectForm.setIsFirstCalculationState(false);
            }

            acceptableSchedulesTemp.Clear();
            overlapSchedulesTemp.Clear();
            acceptableSchedules.Clear();
            overlapSchedules.Clear();
            isCancelled = false;
        }
        private void SelectScheduleButton_Click(object sender, EventArgs e)
        {
            List <bool> canOptimize = new List <bool>(allCB.Count() - 1);

            foreach (var checkBox in allCB)
            {
                if (checkBox.Checked == true)
                {
                    canOptimize.Add(false);
                }
                else
                {
                    canOptimize.Add(true);
                }
            }
            RefToCourseSelectForm.Show();
            RefToLoadResultsForm.Hide();
            this.Hide();
            RefToCourseSelectForm.setIsFirstCalculationState(true);
            RefToCourseSelectForm.setIsOptimizationState(true);
            RefToCourseSelectForm.ChooseOptimizationCourses(canOptimize, oldSchedule, RefToLoadResultsForm);
        }