none
TextBox customizada com propriedade do tipo List RRS feed

  • Pergunta

  • Boa tarde a todos,

    Estou com um problema ao criar um propriedade do tipo List em uma TextBox customizada.

    Eu criei a classe MTextBox que herda da classe TextBox e criei uma variável e uma propriedade do tipo List. Segue abaixo o código:

    public class MTextBox : TextBox
    {

    private List<Color> cores;

            public List<Color> Cores
    {
    get { return cores; }
            set { cores = value; }

            }

    }

    A classe compila sem erros, e a propriedade Cores aparece nas propriedades do TextBox permitindo adicionar uma lista de cores. O problema é que depois de colocar as cores na propriedade ela apaga o valor da propriedade, ou seja, eu clico na propriedade, escolho a lista de cores, fecho a janela da propriedade e quando volto as cores já não estão mais carregadas na lista.

    Alguém sabe o que devo fazer para que a propriedade não perca os valores?

    Segue abaixo um print da janela da propriedade que eu preencho as cores.

    Obrigado!

    segunda-feira, 2 de dezembro de 2013 16:09

Respostas

  • Boa tarde William,

    Nesse meio tempo em que postei a pergunta consegui achar a solução. O que faltou foi eu instanciar a classe Colors e colocar a propriedade DesignerSerializationVisibility. Segue abaixo como ficou a solução. 

    public class MTextBox : TextBox
    {
            private List<Color> cores = new List<Color>();

            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
            public List<Color> Cores
            {
                get { return cores; }
                set { cores = value; }
            }
    }

    Agora já funciona!!


    segunda-feira, 2 de dezembro de 2013 17:02

Todas as Respostas

  • Mas quando vc fecha a janela, onde a armazenado esta propriedade? Bando de dados?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    segunda-feira, 2 de dezembro de 2013 16:55
    Moderador
  • Boa tarde William,

    Nesse meio tempo em que postei a pergunta consegui achar a solução. O que faltou foi eu instanciar a classe Colors e colocar a propriedade DesignerSerializationVisibility. Segue abaixo como ficou a solução. 

    public class MTextBox : TextBox
    {
            private List<Color> cores = new List<Color>();

            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
            public List<Color> Cores
            {
                get { return cores; }
                set { cores = value; }
            }
    }

    Agora já funciona!!


    segunda-feira, 2 de dezembro de 2013 17:02