【发布时间】:2013-10-21 17:26:08
【问题描述】:
在 Winforms 用户控件中,我已将 ProgressBar 集成到 Listview 中,这是属性之一:
''' <summary>
''' The ListView ProgressBar BorderColor
''' </summary>
Public Property ProgressBar_BorderColor As Pen
Get
Return _progressBar_bordercolor
End Get
Set(ByVal value As Pen)
_progressBar_bordercolor = value
End Set
End Property
嗯,问题是在属性窗口中我无法更改钢笔和画笔的值。
我可以通过编写代码手动更改值,但不能在属性窗口中更改。
我在编码属性时做错了什么,或者这些值不能在任何其他控件的属性窗口中更改,而不仅仅是我的控件?为什么?
我需要修改什么才能在我的用户控件的属性窗口中更改这些值?
【问题讨论】:
-
我很确定这是可能的,但你必须实现自己的类型转换器或自定义编辑器用于您自己的控制。
-
@King King 谢谢你的评论,你能帮我找到关于如何做到这一点的在线参考/教程吗?对我来说是全新的。我认为 InDesign-Time 编辑器应该比类型转换器更难,但无论如何我认为我从未见过你的意思的类型转换器.. 我不知道要做到多难那个类型转换器。
-
@King King 您的意思是将属性类型设置为颜色,然后将该颜色转换为笔/画笔?如果是,那么我认为我可以做到,看起来很容易,但无论如何我想知道是否有更“本机”的方式可以在属性窗口中更改这些值。
-
UIDesigners 可能很难写。基于属性 NAMES,您真的只想为各种 ProgressBar 元素指定颜色,而不是实际的 GDI 项目(钢笔、画笔等)。在内部,您可以使用私有函数来获取指定颜色的 getPen getBrush - 比 UIDesigner 容易得多。
-
谢谢,那么这个信息问题就解决了。
标签: c# vb.net winforms visual-studio-2012 user-controls