我做了一些谷歌搜索和found this forum post,这就是我需要做的事情:
Imports System.ComponentModel
<EditorBrowsable(EditorBrowsableState.Always), Browsable(True), Bindable(True), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
Overrides Property Text() As String
Get
Return ControlText.Text
End Get
Set(ByVal value As String)
ControlText.Text = value
End Set
End Property
我应该说我是创建自定义控件的新手,所以我不知道整个过程的所有细节。
我正在创建一个自定义控件,其功能与复选框类似,但使用两个图像作为选中/取消选中。我正在尝试添加Text属性,但它给了我这个警告:
Property Text() As String
Get
Return ControlText.Text
End Get
Set(ByVal value As String)
ControlText.Text = value
End Set
End Property
“property'Text'在基类'UserControl'中隐藏一个可覆盖的方法。要覆盖基本方法,必须将此方法声明为'Overrides'。”
好的,这没问题。我将我的声明更改为Overrides Property Text() As String
,但当我去测试时,'text'未在属性下列出。我需要采取额外的步骤来获得结果吗?
我的控件包含2个(或3个,取决于你如何看待它):
答案 0 :(得分:3)
编辑划伤了有关非虚拟文字的内容。它实际上是虚拟/可覆盖的。
但我很好奇,你为什么要这样做。在您的具体示例中,您只是调用基本属性,因此它似乎没有做任何事情。
您希望在哪里显示此值以及如何设置它?
<击> Text是Control上的非虚拟/可覆盖方法。您无法覆盖该属性。如果要重新定义属性,可以使用Shadows关键字。
答案 1 :(得分:1)
你应该确保它是一个公共财产
答案 2 :(得分:1)
Public Overridable 属性Text()As String
Get Return ControlText.Text End Get Set(ByVal value As String) ControlText.Text = value End Set End Property
答案 3 :(得分:1)
这可能是一个愚蠢的问题,但其中一些仍然需要确认:
您是否已经编译,因为您进行了更改?在Visual Studio中使用热键,按[Ctrl]+[Shift]+[b]
以编译整个解决方案。