C# - TextBox Validation
36,410
There are several events that you can use here, Leave
, LostFocus
and Validating
there is more discussion of these various events on MSDN here.
Under certain scenarios the Leave
and the LostFocus
will not fire so the best to use in your case is the Validating
event:
textBox1.Validating += new CancelEventHandler(textBox1_Validating);
void textBox1_Validating(object sender, CancelEventArgs e)
{
int numberEntered;
if (int.TryParse(textBox1.Text, out numberEntered))
{
if (numberEntered < 1 || numberEntered > 10)
{
MessageBox.Show("You have to enter a number between 1 and 10");
textBox1.Text = 5.ToString();
}
}
else
{
MessageBox.Show("You need to enter an integer");
textBox1.Text = 5.ToString();
}
}
Author by
Jay
Updated on July 09, 2022Comments
-
Jay almost 2 years
I have some code that checks and makes sure that when the users enters in the field an integer from 1 - 10 has to be input.
Although if the users takes focus of the field, the "bad" data (such as "fdgfdg") is still left in the field. So could some demonstrate how when focus is lost on the field, if the data is not valid, a default value will be entered instead e.g. 5
private void textBox4_TextChanged(object sender, EventArgs e) { try { int numberEntered = int.Parse(textBox4.Text); if (numberEntered < 1 || numberEntered > 10) { MessageBox.Show("You must enter a number between 1 and 10"); } } catch (FormatException) { MessageBox.Show("You need to enter an integer"); } }