【问题标题】:Why won't my Custom Control's Text property show up in the Properties window?为什么我的自定义控件的 Text 属性不会显示在“属性”窗口中?
【发布时间】:2012-04-28 04:09:21
【问题描述】:

我有一个继承自 UserControl 的用户控件。它是一个按钮,所以我试图让按钮中的文本,通过像真正的按钮一样使用 Text 属性来更改,而不是像 _Text 一样命名我自己的。我有以下代码,但它不起作用(即它没有出现在属性窗口中)。标签的名称是 ContentPresenter

public override string Text
{
    get
    {
        return ContentPresenter.Text;
    }
    set
    {
        ContentPresenter.Text = value;
    }
}

【问题讨论】:

标签: c# winforms visual-studio-2010 properties user-controls


【解决方案1】:

UserControl 努力隐藏 Text 属性。来自元数据:

    [Browsable(false)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [EditorBrowsable(EditorBrowsableState.Never)]
    [Bindable(false)]
    public override string Text { get; set; }

您可以通过在代码中覆盖这些属性来使其可见:

    [Browsable(true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [Bindable(true)]
    public override string Text 
    { 
        get { return ContentPresenter.Text; } 
        set { ContentPresenter.Text = value; } 
    } 

我不保证这足以让它发挥作用,但它可能是。

【讨论】:

  • 我从 Steve Wong 的评论中发现了这一点,不得不将其翻译成 C#,这就是代码的最终结果,它运行良好,谢谢
  • 感谢您对这个问题的回答,它帮助我解决了我遇到的另一个问题:stackoverflow.com/questions/14899899/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多