示例#1
0
        private void tvwElements_AfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e)
        {
            try
            {
                // Re-enable the Delete menu item.

                if (m_deleteMenuItem != null)
                {
                    m_deleteMenuItem.Enabled = true;
                }

                string newName = e.Label;
                if (newName != null)
                {
                    IElementPropertyInfo elementInfo = e.Node.Tag as IElementPropertyInfo;
                    if (elementInfo != null)
                    {
                        // Make sure any changes in the property page is captured.

                        if (m_currentPage != null)
                        {
                            SavePropertyPage(m_currentPage);
                        }
                        elementInfo.RenameElement(newName);
                        foreach (IElementPropertyInfo childElementInfo in elementInfo.Elements)
                        {
                            childElementInfo.RefreshParentElement(elementInfo.Element);
                        }

                        // Refresh the nodes.

                        DisplayElement(elementInfo);
                        OnElementChanged();
                    }
                }
            }
            catch (System.Exception ex)
            {
                new ExceptionDialog(ex, "The following exception occurred:").ShowDialog();
                e.CancelEdit = true;
                e.Node.BeginEdit();
            }
        }