【问题标题】:Why does the text property overridden in user control is not showing at design time为什么在设计时未显示用户控件中覆盖的文本属性
【发布时间】:2010-05-20 11:48:55
【问题描述】:

我有一个覆盖属性文本的用户控件。但此属性在设计时并未显示。

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

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

怎么办?

【问题讨论】:

    标签: vb.net user-controls


    【解决方案1】:

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

        <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
    

    【讨论】:

    • 什么的。工作完美。谢谢!!
    • 值得指出的是,为了能够使用上述属性,还必须这样做:Imports System.ComponentModel
    【解决方案2】:

    Text 属性定义为:

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

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

    HTH。

    【讨论】:

    • 我得到了答案并发布了它
    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 2015-01-03
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多