private void Change_button_Click(object sender, EventArgs e) { if (tabControl.SelectedIndex == 0) // структура { if (StructureTable.CurrentCell == null) { UpdateInfo("Пожалуйста, выберете ячейку"); return; } var cell = StructureTable.CurrentCell; var row = cell.OwningRow; int rowIndex = cell.OwningRow.Index; string oldName = row.Cells[0].Value.ToString(); string oldAuthor = row.Cells[1].Value.ToString(); string oldGenre = row.Cells[2].Value.ToString(); string oldPublisher = row.Cells[3].Value.ToString(); int oldYear = int.Parse(row.Cells[4].Value.ToString()); structureForm.ResetToDefault(); structureForm.Name_comboBox.SelectedItem = oldName; structureForm.Publisher_textBox.Text = oldPublisher; structureForm.Year_numeric.Value = oldYear; structureForm.Text = "Изменить"; DialogResult result = structureForm.ShowDialog(); bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (structureForm.Publisher_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните издательство.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = structureForm.ShowDialog(); } else if (HasIncorrectSymbols(structureForm.Publisher_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = structureForm.ShowDialog(); } else { string name = structureForm.Name_comboBox.Text; string publisher = structureForm.Publisher_textBox.Text; int year = (int)structureForm.Year_numeric.Value; if (name == oldName && publisher == oldPublisher && year == oldYear) { UpdateInfo($"Запись [{row.Cells[0].Value}/{row.Cells[1].Value}/{row.Cells[2].Value}/{row.Cells[3].Value}/{row.Cells[4].Value}] не изменена"); success = true; continue; } if (name != oldName) { NameTree.Remove(oldName, row); NameTree.Add(name, StructureTable.Rows[rowIndex]); row.Cells[0].Value = name; row.Cells[1].Value = structureForm.Author_textBox.Text; row.Cells[2].Value = structureForm.Genre_textBox.Text; } if (publisher != oldPublisher) { PublisherTree.Remove(oldPublisher, row); PublisherTree.Add(publisher, row); row.Cells[3].Value = publisher; } if (year != oldYear) { YearTree.Remove(oldYear, row); YearTree.Add(year, StructureTable.Rows[rowIndex]); row.Cells[4].Value = structureForm.Year_numeric.Value; } success = true; saved = false; UpdateInfo($"Запись [{oldName}/{oldAuthor}/{oldGenre}/{oldPublisher}/{oldYear}] изменена"); } } } } else if (tabControl.SelectedIndex == 1) // справочник Влада { if (NameGenreTable.CurrentCell == null) { UpdateInfo("Пожалуйста, выберете ячейку"); return; } var row = NameGenreTable.CurrentCell.OwningRow; string prevName = NameGenreTable.CurrentCell.OwningRow.Cells[0].Value.ToString(); string prevGenre = NameGenreTable.CurrentCell.OwningRow.Cells[1].Value.ToString(); string name = prevName; string genre = prevGenre; var form = new NameGenreForm("Изменить"); form.Name_textBox.Text = name; form.Genre_textBox.Text = genre; DialogResult result = form.ShowDialog(); bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (form.Name_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните название.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (form.Genre_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните жанр.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (HasIncorrectSymbols(form.Name_textBox.Text) || HasIncorrectSymbols(form.Genre_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); } else { name = form.Name_textBox.Text; genre = form.Genre_textBox.Text; if (prevName != name && NameGenreHT.Contains(name)) { MessageBox.Show($"Запись с названием \"{name}\" уже находится в справочнике.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); continue; } NameGenreChange(name, genre, row); success = true; } } } } else // справочник Полины { if (NameAuthorTable.CurrentCell == null) { UpdateInfo("Пожалуйста, выберете ячейку"); return; } var row = NameAuthorTable.CurrentCell.OwningRow; string prevName = NameAuthorTable.CurrentCell.OwningRow.Cells[0].Value.ToString(); string prevAuthor = NameAuthorTable.CurrentCell.OwningRow.Cells[1].Value.ToString(); string name = prevName; string author = prevAuthor; var form = new NameAuthorForm("Изменить"); form.Name_textBox.Text = name; form.Author_textBox.Text = author; DialogResult result = form.ShowDialog(); bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (form.Name_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните название.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (form.Author_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните автора.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (HasIncorrectSymbols(form.Name_textBox.Text) || HasIncorrectSymbols(form.Author_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); } else { name = form.Name_textBox.Text; author = form.Author_textBox.Text; if (prevName != name && NameAuthorHT.Contains(name)) { MessageBox.Show($"Запись с названием \"{name}\" уже находится в справочнике.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); continue; } NameAuthorChange(name, author, row); success = true; } } } } }
private void Add_button_Click(object sender, EventArgs e) { if (tabControl.SelectedIndex == 0) // структура { if (structureForm.Name_comboBox.Items.Count == 0) { MessageBox.Show("Невозможно добавить запись в структуру. Необходимо заполнить справочники.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } structureForm.ResetToDefault(); structureForm.Text = "Добавить"; DialogResult result = structureForm.ShowDialog(); string name, genre, publisher, author; int year; bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (structureForm.Name_comboBox.Text == "") { MessageBox.Show("Пожалуйста, заполните название.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = structureForm.ShowDialog(); } else if (structureForm.Publisher_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните издательство.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = structureForm.ShowDialog(); } else if (HasIncorrectSymbols(structureForm.Publisher_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = structureForm.ShowDialog(); } else { name = structureForm.Name_comboBox.Text; author = structureForm.Author_textBox.Text; genre = structureForm.Genre_textBox.Text; year = (int)structureForm.Year_numeric.Value; publisher = structureForm.Publisher_textBox.Text; StructureAdd(name, author, genre, publisher, year); success = true; } } } } else if (tabControl.SelectedIndex == 1) // справочник Влада { var form = new NameGenreForm("Добавить"); DialogResult result = form.ShowDialog(); string name, genre; bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (form.Name_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните название.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (form.Genre_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните жанр.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (HasIncorrectSymbols(form.Name_textBox.Text) || HasIncorrectSymbols(form.Genre_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); } else { name = form.Name_textBox.Text; genre = form.Genre_textBox.Text; if (NameGenreHT.Contains(name)) { MessageBox.Show($"Запись с именем \"{name}\" уже находится в справочнике.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); continue; } NameGenreAdd(name, genre); success = true; } } } } else // справочник Полины { var form = new NameAuthorForm("Добавить"); DialogResult result = form.ShowDialog(); string name, author; bool success = false; while (!success) { if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { if (form.Name_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (form.Author_textBox.Text == "") { MessageBox.Show("Пожалуйста, заполните автора", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); result = form.ShowDialog(); } else if (HasIncorrectSymbols(form.Name_textBox.Text) || HasIncorrectSymbols(form.Author_textBox.Text)) { MessageBox.Show("Обнаружен недопустимый символ.\nВ полях можно использовать буквы, цифры и знаки препинания.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); } else { name = form.Name_textBox.Text; author = form.Author_textBox.Text; if (NameAuthorHT.Contains(name)) { MessageBox.Show($"Запись с именем \"{name}\" уже находится в справочнике.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = form.ShowDialog(); continue; } NameAuthorAdd(name, author); success = true; } } } } }