第三次编辑/解决
我希望为自定义继承的标签文本属性设置默认值。
带有defaultvalueattribute的system.component.model可能在某些情况下有效,但是,在这里,使用Reset和ShouldSerializeText似乎是可行的方法。
Public Class PlusMinusLabel
Private Const StrV As String = "0"
Private MyDefaultText As String = GetDefaultText()
Private Function GetDefaultText() As String
Return StrV
End Function
Public Overrides Property Text As String
Get
If String.IsNullOrWhiteSpace(MyBase.Text) Then
Return MyDefaultText
Else
Return MyBase.Text
End If
End Get
Set(value As String)
MyBase.Text = value
End Set
End Property
Public Overrides Sub ResetText()
MyDefaultText = GetDefaultText()
End Sub
Public Function ShouldSerializeText() As Boolean
Return Not (MyDefaultText Is StrV)
End Function
结束班
这很有效。我可以在表单上放置一个新的PlusMinusLabel,它将使用构建时的默认值替换text属性中的默认名称。
但是,最好知道是否有一种方法可以使用defaultvalueattribute,它只允许我在窗体设计器视图中手动将控件重置为所需的值。我从来没有单独使用代码。带有Default Font workup的.Net文档页面让我意识到我必须自己编写或覆盖继承的函数。