Pergunta

Eu tenho uma linha de propriedade de cor na minha grade personalizada de controle.Eu quero padrão para Drawing.SystemColors.InactiveBorder.Eu tentei:

[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }

Mas ele parece não funcionar.Como eu faço isso com o valor padrão do atributo?

Foi útil?

Solução

Isto pode ajudar: http://support.microsoft.com/kb/311339 -- um artigo intitulado KB "A documentação do MSDN para a classe DefaultValueAttribute pode ser confuso"

Outras dicas

Você precisa mudar primeiro argumento da SystemColors para Color.
Parece que não há nenhum tipo de conversor para a SystemColors tipo, só para o Color escreva.

[DefaultValue(typeof(Color),"InactiveBorder")]

De acordo com o link Matt postado, o valor padrão do atributo não definir o valor padrão da propriedade, ele só permite que o designer de formulário saber que a propriedade tem um valor padrão.Se você alterar uma propriedade do valor padrão que é mostrado em negrito na janela de propriedades.

Você não pode definir um valor padrão usando propriedades automáticas - você vai ter que fazê-lo da maneira antiga:

class MyClass
{
    Color lineColor = SystemColors.InactiveBorder;

    [DefaultValue(true)]
    public Color LineColor {
        get {
            return lineColor;
        }

        set {
            lineColor = value;
        }
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top