protected string EditValueHelper(ITypeDescriptorContext context, IServiceProvider provider, string value, IList <string> valueList) { if ((value == null) || (valueList == null)) { throw new ArgumentNullException(); } if (provider != null) { IWindowsFormsEditorService editorService = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (editorService == null) { return(value); } // prepare list editor.Begin(editorService, value, valueList); // show drop-down now editorService.DropDownControl(editor); // now we take the result value = editor.Value; // reset editor editor.End(); } return(value); }