9

UserControlから継承するユーザーコントロールがあります。これはボタンなので、_Textのように自分の名前を付けるのではなく、実際のボタンのようにTextプロパティを使用して、ボタン内のテキストを変更可能にしようとしています。次のコードがありますが、機能しません(つまり、プロパティウィンドウに表示されません)。ラベルの名前はContentPresenterです。

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

1 に答える 1

17

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

それが機能するのに十分であるとは約束しませんが、おそらくそうです。

于 2012-04-16T20:14:07.537 に答える