2012-11-25 193 views
2

如何獲取另一個控件的屬性以顯示在屬性窗口中。例如,如果我有自定義控件(顯示另一個對象的屬性)

public class MyClass : UserControl 
{ 
    public MyClass(){} 
    public bool Visible{get;set}// Property of MyClass 

    public MyProperties GridProp {get;set;}// Tried this but does not show the properties 
           //of MyProperties class 

} 

public class MyProperties 
{ 
    public MyProperties() { } 
    public bool Visible { get; set; } 
    public Color Color { get; set; } 
} 

我怎樣才能得到MyProperties物業,MyClass的性能展現出來?

+0

它被聲明爲'public MyProperties {get; set;}',因爲那不會被編譯?它需要通過'public MyProperties MyProperties {get; set;}'。 – DaveShaw

+0

對不起,這是一個錯字。我糾正了它。它應該是public myProperties GridProp {get; set;} – ManOfSteel

回答

2

如果你想讓你的屬性出現在VS屬性窗口中,你必須添加一些屬性到qestion中的屬性。

public class MyControl : Control 
{ 
    public MyControl() 
    { 
     MyObject = new MyObject(); 
    } 

    [Category("MyControl")] 
    [Description("My Property Description")] 
    [TypeConverterAttribute(typeof(ExpandableObjectConverter))] 
    public MyObject MyObject { get; set; } 
} 


public class MyObject 
{ 
    public string MyProperty { get; set; } 
} 

你必須來裝點你的自定義與ExpandableObjectConverter的TypeConverter對象,這將顯示在類的性質在。

enter image description here

有屬性來設置顯示名稱,類別,事情就是這樣的默認值。更多信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/aa302326.aspx

相關問題