前面的几篇文章中,我们给控件添加一个复杂的类型Scope,并且给它的类型提供的一个类型转换器,现在我们可以在属性浏览器中编辑它的值,并且它的值也被串行化的源代码里了。但是你有没有发现,在属性浏览器里编辑这个属性的值还是不太方便。因为属性只是“10,200”这种形式的,所以,你必须按照这种格式来修改,一旦格式错误就会引发异常,比如输入一个“10200”。我们期望这个属性的每一子属性都能够被独立的编辑就好了,这并非不能实现,而且实现还很简单。
为了在属性浏览器里能够独立的编辑子属性,我们还要重写两个方法:GetPropertiesSupported()和GetProperties();下面是ScopeConverter的完整代码:
public class ScopeConverter : TypeConverter
在GetProperties方法里,我用TypeDescriptor获得了Scope类的所有的属性描述器并返回。如果你对TypeDescriptor还不熟悉的话,可以参考MSDN。
重写这两个方法并编译以后,在测试工程里查看控件的属性,你可以看到Scope是如下的形式:

相关文章:
-
2021-10-04
-
2021-09-04
-
2021-04-07
-
2021-06-05
-
2021-12-09
猜你喜欢
-
2022-01-10
-
2021-09-19
-
2021-11-17
-
2021-06-13
-
2021-12-29
-
2021-05-20
相关资源
-
下载
2022-12-13
-
下载
2021-06-26
-
下载
2021-06-06
-
下载
2023-01-21