我做了个自定义控件,里面有一个List<Point>的属性。
可是将它拖到窗体中后,无法在编辑器里面修改属性的值。
List<Point>中可以添加删除点,但每个Point的X和Y的值都无法改变,编辑器显示“对象与目标类型不匹配”。如图:
网上找了很久,问题原因好像是由于Point属于struct,没法直接在List<>里面修改元素的成员。
比如一个集合List<Point> points;points[0].X=10;就会出现错误“无法修改“System.Collections.Generic.List<System.Drawing.Point>.this[int]”的返回值,因为它不是变量”
最后找到官网上:https://connect.microsoft.com/VisualStudio/feedback/details/552326/collectioneditor-cannot-be-used-with-list-point#tabs,
一位老外反馈了这个问题,但没有解决办法…………我只知道似乎可以给属性设置自定义的TypeCoverter来解决,但对这个东西不了解,网上搜的方法试了半天没弄清楚,求高人指教了!