/// <summary> /// Отобразить все вложенные узлы для данного узла /// </summary> /// <param name="treeNodes">Узелы на списке узлов</param> /// <param name="operationTypeId">Id типа операции, который находится в этом узле</param> private void FillNodes(TreeNodeCollection treeNodes, int operationTypeId) { COperationType[] operationTypes = _operationTypeWorker.GetChilds(operationTypeId); foreach (COperationType operationType in operationTypes) { treeNodes.Add(operationType.Name); } foreach (TreeNode node in treeNodes) { if (IsSelectedOperationTypesContainOperationType(node.Text)) { node.Checked = true; } COperationType operationType = _operationTypeWorker.GetByGeneralData(node.Text); if (operationType.Type == NodeType.Folder) { node.NodeFont = new Font(treeViewOperationType.Font, FontStyle.Bold); node.ImageIndex = 1; node.SelectedImageIndex = 1; FillNodes(node.Nodes, operationType.Id); if (operationType.NodeFolderStated == NodeFolderStated.Opened) { node.Expand(); } } } }
/// <summary> /// Сохранение изменений /// </summary> /// <param name="sender">Объект, пославший сообщение</param> /// <param name="e">Объект, содержащий данные посланного сообщения</param> private void buttonOk_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(textBoxOperationTypeName.Text)) { MessageBox.Show("Поля, отмеченные звёздочкой, обязательны для заполнения", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { string oldOperationTypeName = _operationTypeInfo.Name; _operationTypeInfo.Name = textBoxOperationTypeName.Text; _operationTypeInfo.Type = comboBoxNodeType.Text == "Папка" ? NodeType.Folder : NodeType.Type; if (comboBoxParentNodeName.Text == "Корневая папка") { _operationTypeInfo.IdParent = -1; } else { COperationType operationType = _operationTypeWorker.GetByGeneralData(comboBoxParentNodeName.Text); _operationTypeInfo.IdParent = operationType.Id; } if (_operationTypeInfo.Id == 0) { _operationTypeWorker.Add(_operationTypeInfo); } else { _operationTypeWorker.Update(_operationTypeInfo); _operationWorker.ChangeOperationType(oldOperationTypeName, _operationTypeInfo.Name); } _isFormClosingByButton = true; Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }