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);
 }