public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { //打开属性编辑器修改数据 Control control = context.Instance as Control; PropertyClonableClass data = context.PropertyDescriptor.GetValue(context.Instance) as PropertyClonableClass; // 强制变更,以将变更写入文件 PropertyDescriptor property = TypeDescriptor.GetProperties(control)["BackColor"]; property.SetValue(control, control.BackColor); return(PropertiesEditorForm.EditValue("SplitViewLayout", data)); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { //打开属性编辑器修改数据 Control control = context.Instance as Control; PropertyDescriptor editPropertyInfo = context.PropertyDescriptor; PropertyClonableClass data = editPropertyInfo.GetValue(context.Instance) as PropertyClonableClass; if (null == data) { throw new InvalidCastException("Property should be the subclass of PropertyClonableClass."); } // 强制变更,以将变更写入文件 PropertyDescriptor property = TypeDescriptor.GetProperties(control)["BackColor"]; property.SetValue(control, control.BackColor); return(PropertiesEditorForm.EditValue(editPropertyInfo.Name, data)); }