在自定义标签中设置默认文本值

时间:2018-06-18 23:17:22

标签: vb.net

第三次编辑/解决

我希望为自定义继承的标签文本属性设置默认值。

带有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文档页面让我意识到我必须自己编写或覆盖继承的函数。

0 个答案:

没有答案