none
Bloqueando Campos/GroupBox RRS feed

  • Pergunta

  • Olá amigos, boa dia.

    Estou com uma duvida e gostaria da ajuda de vocês.

    Tenho um groupbox e dentro deles varios campos do tipo textbox e alguns do tipo combobox.

    Gostaria de abrir um formulário com todos os campos que estão dentro do groupbnox bloqueados para edição e somente quando fosse clicado algum botão os mesmos ficassem livres para edição.

    Já tentei a propriedade enabled = false, porem o aspecto visual não fica legal, dando a impressão que o campo está desabilitado.

    A propriedade readonly atende (mesmo tendo que mudar a cor de fundo do campo para manter o mesmo aspecto de um campo normal) porem nao atende para os campos do tipo combobox.

    Gostaria de bloquear todo o groupbox, para nao ter que mudar a propriedade de cada campo.

    Obrigado pela ajuda.

    segunda-feira, 1 de abril de 2013 14:06

Respostas

  • Alvaro,

    Infelizmente não existe propriedade ou método que desabilite todos os controles dentro um GroupBox, isso terá que ser feito na mão, oque pode ser feito para amenizar isso é criar um método responsavel por isso, exemplo:

    public static void ReadonlyControls(GroupBox group, bool enable)
    {
        foreach (Control c in group.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).ReadOnly = !enable;
            }
            if (c is CheckBox)
            {
                ((CheckBox)c).Enabled = enable;
            }
            if (c is ComboBox)
            {
                c.Enabled = enable;
            }
        }
    }

    Agora é só usar:

    ReadonlyControls(meuGroupbox,false);

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Alvaro Vieira terça-feira, 2 de abril de 2013 13:59
    segunda-feira, 1 de abril de 2013 17:16

Todas as Respostas

  • Alvaro,

    Infelizmente não existe propriedade ou método que desabilite todos os controles dentro um GroupBox, isso terá que ser feito na mão, oque pode ser feito para amenizar isso é criar um método responsavel por isso, exemplo:

    public static void ReadonlyControls(GroupBox group, bool enable)
    {
        foreach (Control c in group.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).ReadOnly = !enable;
            }
            if (c is CheckBox)
            {
                ((CheckBox)c).Enabled = enable;
            }
            if (c is ComboBox)
            {
                c.Enabled = enable;
            }
        }
    }

    Agora é só usar:

    ReadonlyControls(meuGroupbox,false);

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Alvaro Vieira terça-feira, 2 de abril de 2013 13:59
    segunda-feira, 1 de abril de 2013 17:16
  • Valeu Vitor, vou fazer os testes aqui.

    Muito Obrigado

    terça-feira, 2 de abril de 2013 13:59