【发布时间】:2013-11-26 21:18:11
【问题描述】:
我希望自定义控件根据Enabled 属性的值提供不同的BackColor。我继承了一个Button,现在尝试隐藏BackColor 属性以将其隐藏在视图中,然后提供另一个,称为BackColorEnabled。
这是针对该问题的简化测试用例:
Imports System.ComponentModel
Friend Class StyledButton : Inherits Button
Private _BackColorEnabled As Color
<Browsable(False)>
Friend Shadows Property BackColor As Color
Get
Return MyBase.BackColor
End Get
Set(value As Color)
MyBase.BackColor = value
End Set
End Property
<Browsable(True)>
Friend Property BackColorEnabled As Color
Get
Return _BackColorEnabled
End Get
Set(value As Color)
_BackColorEnabled = value
End Set
End Property
Sub New()
_BackColorEnabled = SystemColors.Control
End Sub
End Class
问题是这两个属性都不起作用,即BackColor 仍然出现,而BackColorEnabled 不存在。根据我在网上找到的许多链接,设置 BrowsableAttribute 应该可以 100% 工作。那么上面的代码有什么问题呢?
【问题讨论】:
标签: vb.net winforms custom-controls