2013-10-30 44 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。我会这样研究。 –