private bool EditMenuItemsChangeCallback(object context) { bool changed = false; PopupMenu oControl = (PopupMenu)Component; IServiceProvider site = oControl.Site; IComponentChangeService changeService = null; try { MenuItemsEditorForm oEditorForm = new MenuItemsEditorForm(oControl); if (oEditorForm.ShowDialog() == DialogResult.OK) { changed = true; } } finally { if (changed && changeService != null) { changeService.OnComponentChanged(oControl, null, null, null); } } return(changed); }
public override bool EditComponent(ITypeDescriptorContext context, object component, IWin32Window owner) { PopupMenu oControl = (PopupMenu)component; IServiceProvider site = oControl.Site; IComponentChangeService changeService = null; DesignerTransaction transaction = null; bool changed = false; try { if (site != null) { IDesignerHost designerHost = (IDesignerHost)site.GetService(typeof(IDesignerHost)); transaction = designerHost.CreateTransaction("BuildMenu"); changeService = (IComponentChangeService)site.GetService(typeof(IComponentChangeService)); if (changeService != null) { try { changeService.OnComponentChanging(component, null); } catch (CheckoutException ex) { if (ex == CheckoutException.Canceled) { return(false); } throw ex; } } } try { MenuItemsEditorForm oEditorForm = new MenuItemsEditorForm(oControl); if (oEditorForm.ShowDialog(owner) == DialogResult.OK) { changed = true; } } finally { if (changed && changeService != null) { changeService.OnComponentChanged(oControl, null, null, null); } } } finally { if (transaction != null) { if (changed) { transaction.Commit(); } else { transaction.Cancel(); } } } return(changed); }