做了一个图片显示的控件,因为种种原因设计成了要绘图的时候引发事件向提供者索引图片的方式.
既然是索引嘛,自然就有个key了.然后为了偷懒,就把key做成了泛型.接下来问题就来了:这个控件无法在
窗体设计器中打开...自己编辑了InitializeComponent手动加入控件后,VS窗体设计器直接给我报错了囧.
网上搜了半天也没搜到解决方案,毕竟像泛型控件类之类的东东比较少嘛.
想了半天终于想到一个折中的办法:
泛型类的定义如下:
- class PicView<KeyType>:Control
- {
- ...
- }
既然窗体设计器无法实例化泛型的控件类,那我就弄个非泛型类来用好了:
- public class PicViewStr : PicView<string>
- {
- //这儿啥也不写
- }
修改然后在设计的时候使用PicViewStr类代替原有的PicView类.
打开窗体设计器.一切正常~不用再手工写代码了:P
在创建了一个使用泛型键值的图片显示控件后,遇到在Visual Studio窗体设计器中无法打开的问题。由于设计器不支持泛型控件,通过创建一个非泛型的派生类PicViewStr来解决这个问题,使得窗体设计器能够正常工作,避免了手动编辑InitializeComponent的需要。

1217

被折叠的 条评论
为什么被折叠?



