当前位置: 首页 > 编程语言 > C#

在DesignMode中编辑集合的最简单方法是什么?在DesignMode中共享

时间:2023-04-10 12:50:26 C#

编辑收藏集的最简单方法是什么?在WinForms设计器中编辑和保存decimal[]或List等集合的最简单方法是什么?第一个问题是需要一个无参数的构造函数。所以我创建了一个简单的包装类:(在某些时候这就像MyObject,但WinFormsdesignercode生成器不知道如何处理它)[Serializable()]publicclassMyObject{publicMyObject(){}publicdecimalValue{得到;set;}}在容器类中,我们定义一个属性并向其添加CollectionEditor属性:publicclassMyContainer{privateList_col=newList();[Editor(typeof(CollectionEditor),typeof(System.Drawing.Design.UITypeEditor))]publicListCollection{get{return_col;}设置{_col=值;现在我已经根据stackoverflow和codeproject.com上的答案尝试了各种方法都无济于事:我确实让它工作了但是,通过保存、关闭和重新打开表单,集合中的元素永远不会保留。编辑:汉斯给了我一些提示(他的评论不知何故变成了空白)。我遵循他的指导方针并更新了上面的源代码,不幸的是仍然不起作用......我建议如果可能的话,你公开一个与你已经在框架中使用的类型相同的集合属性,这样你就可以重用现有的集合编辑器。例如,如果您使用StringCollection类,那么您可以执行以下操作并重用WinForms现有编辑器...[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)][Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Design,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a",typeof(UITypeEditor))]publicStringCollectionItems{get{return_myStringCollection;或者,如果您可以公开String[],请执行此操作...[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)][Editor("System.Windows.Forms.Design.StringArrayEditor,System.Design,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a",typeof(UITypeEditor))]publicstring[]Lines{get{return_myStringArray;}设置{myStringArray=值;}}对象列表属性示例:以上是C#学习教程:在DesignMode中编辑集合最简单的方法是什么?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicpartialclassSCon:UserControl{publicSCon(){InitializeComponent();if(Persoanas==null){Personas=new}}[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]publicListPersoanas{get;放;}}[可序列化]publicclassPersoan{publicintId{get;放;}公共字符串名称{得到;放;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: