Pergunta

Estou procurando ajuda para definir um novo valor de propriedade padrão para um controle herdado no Visual Studio:

class NewCombo : System.Windows.Forms.ComboBox
{
  public NewCombo() { DropDownItems = 50; }
}

O problema é que a propriedade da classe base DropDownItems tem um atributo 'default' definido com um valor diferente (não 50).Como resultado, quando arrasto o controle para um formulário, o arquivo do designer obtém uma mensagem explícita mycontrol.DropDownItems = 50; linha.

A princípio, isso não importa.Mas se mais tarde eu mudar minha classe herdada para DropDownItems = 45; no construtor, isso não afeta nenhum dos controles em nenhum formulário, pois todos os arquivos do designer ainda possuem o valor 50 codificado neles.E o objetivo era ter o valor definido em um só lugar para que eu pudesse lidar com a mudança de ideia do cliente.

Obviamente, se eu estivesse criando minha própria propriedade personalizada na subclasse, poderia atribuir a ela seu próprio atributo padrão do designer, conforme eu quisesse.Mas aqui estou querendo alterar os valores padrão das propriedades na base.Existe alguma maneira de aplicar atributos do Visual Studio a um membro da classe base?Ou existe alguma outra solução alternativa para obter o resultado desejado?

Foi útil?

Solução

Na sua classe derivada, você precisa substituir (ou sombrear usando novo) a propriedade em questão e, em seguida, aplique novamente o atributo de valor padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top