Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tenho um campo de inserir CEP. Onde eu não quero que ele aceite caractere especiais.

O CEP ele contém o barra 72275-176 esse barra quero que seja removido no momento que a pessoa digitar. Ficando assim 72275176. Além de remover o traço, quero que remova qualquer tipo de caractere diferente de número. Me ajudem.

1 resposta
solução!

Boa tarde, Luana. Como vai você?

Estou supondo que você está trabalhando com um projeto Windows Forms e uma TextBox. Estou certo?

Pois bem, em um TextBox existem duas formas de se preencher com texto: o usuário pode digitar ou pode copiar e colar um texto. Precisamos tomar cuidado com estes dois eventos!

Quando o usuário pressiona uma tecla, antes deste caractere ser inserido no TextBox, um evento chamado KeyPress é disparado. Neste evento, você pode impedir que o caractere novo seja adicionado ao texto do TextBox. No seu caso, permitiremos apenas dígitos:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    var ehDigito = char.IsDigit(e.KeyChar);
    if (!ehDigito)
        e.Handled = true;
}

Quando o usuário cola um texto, ele não pressiona nenhuma tecla, então o evento TextChanged é lançado. Nele podemos remover os caracteres inválidos ou, se for possível no seu caso, podemos prevenir que o usuário cole um texto. Basta alterar o valor da propriedade ShortcutsEnabled para False.