public MpeTagEditorForm(MpeTag tag, IWindowsFormsEditorService service) { InitializeComponent(); editorService = service; tbName.Text = tag.Name; tbValue.Text = tag.Value; result = DialogResult.Cancel; }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context.Instance is MpeTagCollection) { MpeTagCollection tags = (MpeTagCollection)context.Instance; MpeTag tag = tags[context.PropertyDescriptor.DisplayName]; if (tag != null) { IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); MpeTagEditorForm form = new MpeTagEditorForm(tag, editorService); editorService.DropDownControl(form); switch (form.Result) { case DialogResult.OK: if (tag.Name == form.TagName && tag.Name != "-") { tag.Value = form.TagValue; MpeLog.Info("Tag Updated! Name = " + tag.Name + " Value = " + tag.Value); } else if (tag.Name == form.TagName) { MpeLog.Warn("Invalid tag name specified"); } else { tags.Remove(tag.Name); tag.Name = form.TagName; tag.Value = form.TagValue; tags.Add(tag); MpeLog.Info("Tag Updated! Name = [" + tag.Name + "] Value = [" + tag.Value + "]"); } break; case DialogResult.Abort: tags.Remove(tag.Name); MpeLog.Info("Tag Removed! Name = [" + tag.Name + "[ Value = [" + tag.Value + "]"); break; } return(tag); } } return(base.EditValue(context, provider, value)); }