Array
(
)

Qual a melhor maneira de usar ErroProvider?

Raniel Nogueira
   - 03 jan 2014

Galera é o seguinte tenho alguns campos para validar, queria saber como disparar o ErroProvider apenas para campos Incorretos ou Nulos, tipo criar apenas um ErroProvider para validar todos o meus TextBox, e qual seria a melhor maneira de dispa-ralo? pelo evento Validated x Validating?

Chiodini
   - 03 jan 2014

Aplicação web ou Desktope?

att

Chiodini
   - 03 jan 2014

Eu curto,
colocar os textbox, dentro de um painel.
para dai fazer a busca dos text box .

ser mais reduzida.

o codigo ficaria assim.

#Código

protected bool ValidateNull()
{
foreach (Textbox item in Panel1.Controls.OfType 'menor que' Textbox 'maior que'().Reverse())
{
if(string.IsNullOrEmpty(item.Text.Trim()))
{
erroProvider.SetError(item, "Campo Obrigatório!");
item.Focus();
return false;
}
}
return true;
}

Chiodini
   - 03 jan 2014

Você fazer asim tambem,
No final pintar os campos que ficaram sem preenchimento.
dai vai da tua aplicação.

#Código

foreach (Control controle in this.Controls)
            {
                if (controle.GetType() == typeof(TextBox))
                {
                    if (((TextBox)controle).TextLength == 0)
                    {
                        ((TextBox)controle).Focus();
                        ((TextBox)controle).BackColor = Color.Azure;
                    }
                }
            }

Chiodini
   - 03 jan 2014

Completo ficaria assim.
Com o erroProvider

#Código

 private void btSalvar_Click(object sender, EventArgs e)
        {
            foreach (Control controle in this.Controls["pnTexto"].Controls)
            {
                if (controle.GetType() == typeof(TextBox))
                {
                    if (((TextBox)controle).TextLength == 0)
                    {
                        ((TextBox)controle).Focus();
                        ((TextBox)controle).BackColor = Color.Azure;
                        errorProvider1.SetError((TextBox)controle, "Campo Preenchimento Obrigatório");
                    }
                }
            }
        }