为什么在用户控件中覆盖的text属性未在设计时显示

时间:2010-05-20 11:48:56

标签: vb.net user-controls

我有一个usercontrol,它会覆盖属性Text。但是这个属性在设计时没有显示。

如果我将其重命名为标题或值,它会在设计时显示在属性中,但不会显示文本。

public Class SomeControl
    Inherits System.Windows.Forms.UserControl

    Public Overrides Property Text() As String
        Get
            Return lblText.Text
        End Get
        Set(ByVal value As String)
            lblText.Text = value
        End Set
    End Property
End Class

怎么办?

2 个答案:

答案 0 :(得分:14)

添加了以下属性,问题就解决了。

    <EditorBrowsable(EditorBrowsableState.Always)> _
    <Browsable(True)> _
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
    <Bindable(True)> _
    Public Overrides Property Text() As String
        Get
            Return lblText.Text
        End Get
        Set(ByVal value As String)
            lblText.Text = value
        End Set
    End Property

答案 1 :(得分:4)

Text属性定义为:

[Bindable(false), EditorBrowsable(EditorBrowsableState.Never), Browsable(false),
 DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

意思是,您无法在属性窗口中浏览它;你需要覆盖这里定义的属性属性(我不知道它是否会按预期工作)或者只是将属性名称设置为其他属性。

HTH。