Probably, the best thing to do is not to do form validation to do this, but to handle the characters as they are submitted instead.
If you prevent the user from entering invalid characters in the first place, then you don't need to interrupt his work flow with a message box.
There are two ways to handle it: via the TextBox.KeyPress event and use the e.KeyChar value to restrict the values that he can enter, or use the TextBox.TextChanged event to prevent any entry of invalid characters. The later is more secure in that it covers pasted data as well as typed, but a little more complex to implement.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
if (e.KeyChar >= '0' && e.KeyChar <= '9') e.Handled = true;
Will prevent the TextBox from accepting numeric keys.
There is also the MaskedTextBox which can restrict the input in many ways.