public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context != null && context.Instance != null && provider != null) { IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (edSvc != null) { ActionAttachEvent aae = context.Instance as ActionAttachEvent; if (aae != null) { ClassPointer root = aae.Class; if (root != null) { ILimnorDesignerLoader loader = root.GetCurrentLoader(); if (loader != null) { EventHandlerMethod ehm = aae.GetHandlerMethod(); if (ehm != null) { DlgMethod dlg = ehm.GetEditDialog(Rectangle.Empty, loader); dlg.DisableAnimate(); if (edSvc.ShowDialog(dlg) == System.Windows.Forms.DialogResult.OK) { ehm.OnFinishEdit(aae.ActionId, loader); } } } } } } } return(value); }