public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { IWindowsFormsEditorService editorService; OpacityEditorUI editor; if (context != null && context.Instance != null && provider != null) { editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); SetMinMaxValue(context); if (!(value is int && (int)value >= min && (int)value <= max)) { value = defaultValue; } if (editorService != null) { int currentValue = (int)value; editor = new OpacityEditorUI(currentValue, min, max); editor.Dock = DockStyle.Fill; editorService.DropDownControl(editor); value = editor.GetValue(); } } return(value); }
/// <summary> /// Edits the specified object's value using the editor style indicated by the <see cref="M:System.Drawing.Design.UITypeEditor.GetEditStyle"/> method. /// </summary> /// <returns> /// The new value of the object. If the value of the object has not changed, this should return the same object it was passed. /// </returns> /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that can be used to gain additional context information. </param><param name="provider">An <see cref="T:System.IServiceProvider"/> that this editor can use to obtain services. </param><param name="value">The object to edit. </param> public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { IWindowsFormsEditorService editorService; OpacityEditorUI editor; if (context != null && context.Instance != null && provider != null) { editorService = (IWindowsFormsEditorService) provider.GetService(typeof (IWindowsFormsEditorService)); SetMinMaxValue(context); if (!(value is int && (int) value >= min && (int) value <= max)) { value = defaultValue; } if (editorService != null) { var currentValue = (int) value; editor = new OpacityEditorUI(currentValue, min, max); editor.Dock = DockStyle.Fill; editorService.DropDownControl(editor); value = editor.GetValue(); } } return value; }