2013-10-30 115 views
0

我有一個具有兩個屬性使用類作爲另一個類的屬性

public class ColorPair 
    { 
    #region Miembros 

    private Color _BackColor; 
    private Color _ForeColor; 

    #endregion 

    #region Auxiliares 

    [Browsable(true)] 
    [Category("Color pair")] 
    [Description("Back color")] 
    [DefaultValue(typeof(Color), "White")] 
    public Color BackColor 
    { 
    get { return _BackColor; } 
    set{ _BackColor = value; } 
    } 

    [Browsable(true)] 
    [Category("Color pair")] 
    [Description("Fore color")] 
    [DefaultValue(typeof(Color), "White")] 
    public Color ForeColor 
    { 
    get { return _ForeColor; } 
    set 
    { 
     _ForeColor = value; 
    } 
    } 

    #endregion 

    public ColorPair() 
    { 
    _BackColor = Color.White; 
    _ForeColor = Color.Black; 
    } 

    public ColorPair(Color pFore, Color pBack) 
    { 
    _BackColor = pFore; 
    _ForeColor = pBack; 
    } 

}

我需要用這個作爲一個控制的屬性,像這樣的小類:

 [Browsable(true)] 
    [Category("Trevo format")] 
    [Description("Basic color")] 
    [DefaultValue(typeof(ColorPair), "new ColorPair()")] 
    public ColorPair Normal 
    { 
    get { return _Normal; } 
    set 
    { 
     _Normal = value; 
     this.Invalidate(); 
    } 
    } 

但是,當我去設計師,propery顯示禁用。有什麼辦法可以使它能夠收集價值?

謝謝。

+0

設計人員不會知道如何顯示接口供您默認輸入這些接口...... – Paddy

+0

您可以使用CustomType Provider(現在不記得確切的名稱);簡化不能顯示兩個不同的屬性? –

+0

謝謝@Luis Filipe –

回答

0

在回答你的問題 - 是有辦法使它能夠收集價值,但它涉及編寫一個客戶財產編輯器(這將繼承UITypeEditor)。

一旦你創建了這個,你可以將它附加到屬性EditorAttribute

+0

謝謝@TimEbenezer。我會這樣研究。 –