//Закрытие формы. private void FormMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("При закрытии программы данные будут потеряны, продолжить?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //Если было соглашение с закрытием формы. if (result == DialogResult.Yes) { //Закрытие форм, которые остались открытыми. if (formGSA != null) { formGSA.Close(); } if (formMSA != null) { formMSA.Close(); } if (formLSA != null) { formLSA.Close(); } } //Если не было соглашения с закрытием формы. else { e.Cancel = true; //Отмена закрытия формы. } }
/////////////////////////////////////Private методы///////////////////////////////////// //************************************************************************************************ // Меню. //************************************************************************************************ private void генерацияToolStripMenuItem_Click(object sender, EventArgs e) { //Соглашение с новой генерацией. bool generate; if (algorithm != null) { DialogResult result = MessageBox.Show("При генерации задания данные будут потеряны, продолжить?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question); generate = (result == DialogResult.Yes); } else { generate = true; } //Генерация. if (generate) { if (formSetting.ShowDialog() == DialogResult.OK) { //Генерация алгоритма. Generator generator = new Generator(); int nOperator = formSetting.NumberOperator; int nCondition = formSetting.NumberCondition; algorithm = generator.generate(nOperator, nCondition, "A", "p", "0", "k"); //Отображение алгоритма. showAlgorithm(); //Инициализация компонентов для открытия форм. initializationForm(); //Настройка статистики. resetStatistics(nOperator, nCondition); } } /////////////////////////////////////Локальные функции///////////////////////////////////// //Отображение алгоритма в textBox. void showAlgorithm() { textBoxAlgorithm.Clear(); //Очистка поля для отображения алгоритма. for (int i = 0; i < algorithm.NumberOperator - 1; i++) { textBoxAlgorithm.Text += "from " + algorithm.getOperatorVertex(i).Name + //Вершина, из которой идет переход. " to " + algorithm.getOperatorVertex(i).VertexTo + //Вершина, в которую происходит переход. Environment.NewLine; //Переход на новую строку. } for (int i = 0; i < algorithm.NumberCondition; i++) { textBoxAlgorithm.Text += "from " + algorithm.getConditionVertex(i).Name + //Вершина, из которой идет переход. " to " + algorithm.getConditionVertex(i).VertexTo_IfTrue + //Вершина, в которую происходит переход при истине. " (if true) or" + " to " + algorithm.getConditionVertex(i).VertexTo_IfFalse + //Вершина, в которую происходит переход при лжи. " (if false)" + Environment.NewLine; //Переход на новую строку. } textBoxAlgorithm.Select(0, 0); //Снятие выделения после вставки текста. } //Инициализация компонентов для открытия форм. void initializationForm() { //Активация кнопок схем. buttonGSA.Enabled = true; buttonMSA.Enabled = true; buttonLSA.Enabled = true; //Выделение кнопок схем. buttonGSA.BackColor = Color.Gold; buttonMSA.BackColor = Color.Gold; buttonLSA.BackColor = Color.Gold; //Закрытие форм, которые остались от прошлого задания. if (formGSA != null) { formGSA.Close(); formGSA = null; } if (formMSA != null) { formMSA.Close(); formMSA = null; } if (formLSA != null) { formLSA = null; formLSA.Close(); } } //Перезагрузка статистики. void resetStatistics(int nOperator, int nCondition) { formStatistics.resetStatistics(); formStatistics.NumberOperator = nOperator.ToString(); formStatistics.NumberCondition = nCondition.ToString(); formStatistics.ConditionGSA = "Не выполнено"; formStatistics.ConditionMSA = "Не выполнено"; formStatistics.ConditionLSA = "Не выполнено"; } /////////////////////////////////////////////////////////////////////////////////////////// }