private Phonebook.PhoneNumber oldNumber; // редактируемый телефонный номер /// <summary> /// Конструктор, ограничивающий создание формы без параметров /// </summary> private FrmPhoneNumber() { InitializeComponent(); newNumber = null; oldNumber = null; }
private void btnDelete_Click(object sender, EventArgs e) { // удаление выбранного объекта object selObj = GetSelectedObject(); Phonebook.PhoneGroup group = selObj as Phonebook.PhoneGroup; Phonebook.PhoneNumber number = selObj as Phonebook.PhoneNumber; if (group != null) { // удаление группы телефонных номеров RemoveGroup(group); Modified = true; } else if (number != null) { // удаление телефонного номера TreeNode phoneGroupNode; GetCurrentGroup(out group, out phoneGroupNode); if (group != null) { RemoveNumber(group, phoneGroupNode, number); Modified = true; } } }
/// <summary> /// Удалить телефонный номер из справочника и из дерева /// </summary> private void RemoveNumber(Phonebook.PhoneGroup group, TreeNode groupNode, Phonebook.PhoneNumber number) { int ind = group.FindPhoneNumberIndex(number.Number); if (ind >= 0) { RemoveNumber(group, groupNode, ind); } }
private TreeNode nodePhonebook; // узел справочника /// <summary> /// Конструктор, ограничивающий создание формы без параметров /// </summary> private FrmPhonebook() { InitializeComponent(); appDirs = null; phonebook = new Phonebook(); modified = false; copiedNumber = null; nodePhonebook = tvPhonebook.Nodes["nodePhonebook"]; }
private void btnCopyNumber_Click(object sender, EventArgs e) { // копирование телефонного номера Phonebook.PhoneNumber number = GetSelectedObject() as Phonebook.PhoneNumber; if (number != null) { copiedNumber = number; btnPasteNumber.Enabled = true; } }
private void btnCutNumber_Click(object sender, EventArgs e) { // вырезать телефонный номер Phonebook.PhoneNumber number = GetSelectedObject() as Phonebook.PhoneNumber; if (number != null) { copiedNumber = number; btnDelete_Click(null, null); } }
/// <summary> /// Вставить телефонный номер в справочник и в дерево, проверив уникальность номера /// </summary> private void InsertNumber(Phonebook.PhoneGroup group, TreeNode groupNode, Phonebook.PhoneNumber number) { int ind = group.FindPhoneNumberInsertIndex(number); group.PhoneNumbers.Insert(ind, number); TreeNode node = CreateNumberNode(number); groupNode.Nodes.Insert(ind, node); groupNode.ImageKey = groupNode.SelectedImageKey = "folder_open.png"; tvPhonebook.SelectedNode = node; }
/// <summary> /// Создать узел дерева для группы телефонных номеров /// </summary> private TreeNode CreateNumberNode(Phonebook.PhoneNumber number) { return(new TreeNode() { Text = number.Name == "" ? number.Number : number.Number + " (" + number.Name + ")", ImageKey = "phone.png", SelectedImageKey = "phone.png", Tag = number }); }
/// <summary> /// Редактировать телефонный номер /// </summary> /// <returns>Возвращает новый телефонный номер, созданный на основе заданного, /// или null в случае отмены</returns> public static Phonebook.PhoneNumber EditPhoneNumber(Phonebook.PhoneNumber phoneNumber) { if (phoneNumber == null) { throw new ArgumentNullException("phoneNumber"); } FrmPhoneNumber frmPhoneGroup = new FrmPhoneNumber(); frmPhoneGroup.oldNumber = phoneNumber; frmPhoneGroup.ShowDialog(); return(frmPhoneGroup.newNumber); }
private void btnCreateNumber_Click(object sender, EventArgs e) { // создание телефонного номера Phonebook.PhoneGroup group; TreeNode groupNode; GetCurrentGroup(out group, out groupNode); if (group != null) { Phonebook.PhoneNumber newNumber = FrmPhoneNumber.CreatePhoneNumber(); InsertOrUpdateNumber(group, groupNode, newNumber); } }
private void btnEdit_Click(object sender, EventArgs e) { // редактирование выбранного объекта object selObj = GetSelectedObject(); Phonebook.PhoneGroup group = selObj as Phonebook.PhoneGroup; Phonebook.PhoneNumber number = selObj as Phonebook.PhoneNumber; if (group != null) { // редактирование группы телефонных номеров Phonebook.PhoneGroup newGroup = FrmPhoneGroup.EditPhoneGroup(group); if (newGroup != null && !group.Equals(newGroup)) { RemoveGroup(group); InsertGroup(newGroup); Modified = true; } } else if (number != null) { // редактирование телефонного номера TreeNode groupNode; GetCurrentGroup(out group, out groupNode); if (group != null) { Phonebook.PhoneNumber newNumber = FrmPhoneNumber.EditPhoneNumber(number); if (newNumber != null && !number.Equals(newNumber)) { RemoveNumber(group, groupNode, number); InsertNumber(group, groupNode, newNumber); Modified = true; } } } }
private void btnCreate_Click(object sender, EventArgs e) { // создание телефонного номера newNumber = new Phonebook.PhoneNumber(txtNumber.Text.Trim(), txtName.Text.Trim()); DialogResult = DialogResult.OK; }
/// <summary> /// Вставить телефонный номер в справочник и в дерево или обновить существующий номер /// </summary> private void InsertOrUpdateNumber(Phonebook.PhoneGroup group, TreeNode groupNode, Phonebook.PhoneNumber number) { if (number != null) { int ind = group.FindPhoneNumberIndex(number.Number); if (ind < 0) { InsertNumber(group, groupNode, number); Modified = true; } else if (MessageBox.Show(KpPhrases.UpdatePhoneNumberConfirm, CommonPhrases.QuestionCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { RemoveNumber(group, groupNode, ind); InsertNumber(group, groupNode, number); Modified = true; } } }