2012-04-16 29 views
5

Tôi có một điều khiển người dùng kế thừa từ UserControl. Đó là một nút vì vậy tôi đang cố gắng để làm cho văn bản trong nút, thay đổi-có thể bằng cách sử dụng tài sản văn bản như các nút thực, thay vì đặt tên của riêng tôi như _Text. Tôi có mã sau nhưng nó không hoạt động (tức là nó không hiển thị trong cửa sổ thuộc tính). Tên của nhãn là ContentPresenterTại sao thuộc tính Văn bản của Điều khiển Tùy chỉnh của tôi không hiển thị trong cửa sổ Thuộc tính?

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

Chuỗi này sẽ giúp: http://stackoverflow.com/questions/2873339/why-does-the-text-property-overridden-in-user-control-is-not-showing-at-design-t –

Trả lời

12

UserControl đi đến nỗ lực đáng kể để ẩn thuộc tính Văn bản. Từ các siêu dữ liệu:

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

Bạn có thể làm cho nó có thể nhìn thấy bằng cách ghi đè những thuộc tính trong mã của bạn:

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

Tôi không hứa hẹn đó là đủ để làm cho nó hoạt động, nhưng nó có thể được.

+0

tôi đã tìm ra điều này từ bình luận của Steve Wong và phải dịch nó sang C#, và đây là mã được kết thúc và nó hoạt động tốt, cảm ơn – Oztaco

+0

Cảm ơn câu trả lời cho câu hỏi này, nó giúp tôi giải quyết một vấn đề khác mà tôi gặp phải: http://stackoverflow.com/questions/14899899/win-7-iis-7-5-weird-behavior-with-system-componentmodel-browseableattribute/14938911#14938911 – dcp

Các vấn đề liên quan