Вопрос по c#, visual-studio-2010 – Почему свойство Text пользовательского элемента управления не отображается в окне свойств?

7

У меня есть пользовательский элемент управления, который наследует от UserControl. Это кнопка, поэтому я пытаюсь сделать текст в кнопке изменяемым, используя свойство Text, как реальные кнопки, вместо того, чтобы называть свой собственный как _Text. У меня есть следующий код, но он не работает (т.е. он не отображается в окне свойств). Название ярлыка - ContentPresenter.

public override string Text
{
    get
    {
        return ContentPresenter.Text;
    }
    set
    {
        ContentPresenter.Text = value;
    }
}
Эта ветка должна помочь:stackoverflow.com/questions/2873339/… Steve Wong

Ваш Ответ

1   ответ
15

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; } 
    } 

Я не обещаю, что этого достаточно, чтобы заставить его работать, но, вероятно, так оно и есть.

я понял это из комментария Стива Вонга и должен был перевести его на C #, и на этом код закончился и он работал нормально, спасибо Oztaco
Спасибо за ответ на этот вопрос, он помог мне решить еще одну проблему:stackoverflow.com/questions/14899899/…

Похожие вопросы