标签:C#.Net组件开发 - 自定义属性编辑器持久化对象的属性
标签:C#.Net组件开发 - 自定义属性编辑器持久化对象的属性
最核心功能: *** 在属性器修改了对象的属性,必须持久化属性的值到xxx.Designer.cs文件中 *** 很多朋友在此忘而却步,不知如何处理了,他们反复在问:为什么我修改了对象的属性,再次打开窗体时属性的值不见了?知道这是为什么吗?那里因为你开发的属性编辑器没有生成设计时持久化代码! 生成设计时持久化代码: 自定义的属性编辑器: C# Code: /// <summary> ///自定义的属性编辑器 /// </summary> public class MyItemEditor : UITypeEditor { public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (provider != null) { IWindowsFormsEditorService svc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (svc != null && context.Instance != null) { //取出设计器所在的窗体(组件/控件所在窗体) IDesignerHost host = (IDesignerHost)provider.GetService(typeof(IDesignerHost)); if (host == null) return value; //context.Instance:可以得到当前的Component1组件。 ComponentCS c = context.Instance as ComponentCS; MyObject o = c.Object; if (o == null) o = new MyObject(); frmMyObjectEditor editForm = new frmMyObjectEditor(o); svc.ShowDialog(editForm);//打开属性编辑窗体 editForm.Dispose();//释放内存 //重新序列化内容到.Designer.cs文件 context.PropertyDescriptor.SetValue(context.Instance, value); return o;//返回修改后的对象 } } return value; //返回预设的对象 } } //来源:C/S框架网(www.csframework.com) QQ:1980854898 重写UITypeEditor.EditValue方法: //重新序列化内容到.Designer.cs文件 context.PropertyDescriptor.SetValue(context.Instance, value); 本文来源文章: C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象
参考文档:
C#.Net自定义控件 - CheckedListBoxEditor(支持多值勾选及新增) C#开发自定义控件-设置显示工具箱中的图标 C#.Net开发继承UITypeEditor接口的自定义属性编辑器 C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 标签:C#.Net组件开发 - 设计时持久化对象数组 标签:C#.Net组件开发 - 属性窗体内显示自定义名称 标签:C#.Net组件开发 - 自定义设计器(ComponentDesigner) 标签:C#.Net组件开发 - 自定义设计器持久化对象的属性 C#.Net组件开发(高级篇) - 设计时在窗体设计器文件内生成组件的代码 C#.Net组件开发(高级篇) - 自定义CollectionEditor编辑器 C#.Net组件开发(高级篇) - 开发复杂的设计时组件编辑器 C#.Net组件开发(高级篇) - 全部源码下载 C#.Net组件开发 - 使用Attach to Process实时调试设计器代码 C#.Net组件开发(高级篇) - 使用自定义TypeConverter生成设计时代码 DevExpress GridControl组件的EmbeddedNavigator属性添加用户自定义按钮
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |