2012-04-16 82 views
5

我有一個從UserControl繼承的用戶控件。這是一個按鈕,所以我試圖在按鈕中創建文本,通過使用Text屬性(如真實按鈕)進行更改,而不是像_Text這樣命名我自己的文本。我有以下代碼,但它不起作用(即它不顯示在屬性窗口中)。標籤的名稱是ContentPresenter爲什麼我的自定義控件的文本屬性不會顯示在屬性窗口中?

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

此主題應該有所幫助:http://stackoverflow.com/questions/2873339/why-does-the-text-property-overridden-in-user-control-is-not-showing-at-design-t – 2012-04-16 20:06:33

回答

12

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

我不看好這足以令它的工作,但它可能是。

+0

我從Steve Wong的評論中發現了這一點,並且必須將它翻譯成C#,並且這段代碼已經結束並且工作正常,謝謝 – Oztaco 2012-04-16 20:25:20

+0

感謝您回答這個問題,它幫助我解決了另一個問題: http://stackoverflow.com/questions/14899899/win-7-iis-7-5-weird-behavior-with-system-componentmodel-browseableattribute/14938911#14938911 – dcp 2013-02-18 14:47:11

相關問題