Como criar um campo de texto que aceita apenas números (C# WinForms)?
Olá a todos! Sou novo em C# e WinForms, estou fazendo um aplicativo simples para inserir a idade do usuário. Preciso que no campo de texto seja possível digitar apenas números, e letras e outros caracteres sejam ignorados. Tentei usar int.TryParse após clicar no botão, mas é inconveniente — o usuário pode digitar "abc123" e só descobrir o erro após o clique. Quero que caracteres inválidos não apareçam no campo durante a digitação.
Aqui está meu código atual, que verifica o valor no botão:
private void buttonOk_Click(object sender, EventArgs e)
{
string input = textBoxAge.Text;
if (int.TryParse(input, out int age))
{
MessageBox.Show($"Sua idade: {age}");
}
else
{
MessageBox.Show("Digite apenas números!");
}
}
Como fazer para que o usuário fisicamente não consiga digitar letras? Ouvi falar do evento KeyPress, mas não entendo como aplicá-lo corretamente. Alguém pode me ajudar?