Valor padrão para o Sistema.De desenho.SystemColors
-
09-06-2019 - |
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?
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;
}
}
}