In TextBox_Leave event i need to check whether numbers entered in textbox is in serial number or not.If it is not in order then i need to display a message as \"number\" is
I will show you how to validate Validating WinForms TextBox
(in C#).
Create a function:
public static void ChkBlankTextBoxes(object sender, string type)
{
if (sender is TextBox)
{
TextBox textbox = sender as TextBox;
if (string.IsNullOrEmpty(textbox.Text))
{
MessageBox.Show("Please enter correct value value..");
textbox.Focus();
}
}
}
Call to created function:
ChkBlankTextBoxes(txt_userID, textBoxtype);
ChkBlankTextBoxes(txt_password, textBoxtype);
One trick is to retain focus in the textbox when trying to leave (with TAB for instance) in case of some condition (missing number):
private void textBox1_Leave(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
if (tb.Text == "3")
tb.Focus();
}
Assuming you are using a standard textbox. You could also use third party controls that where you can cancel an event (e.Cancel = true) on some condition.
Try using a Masked TextBox control and set a custom property for this type of field validation.
I don't know whether this also works in c#2.0, this is my experience in c#3.0:
Why do you use TextBox_Leave for that? The Validating-event should be used for validating whether input is correct.
Combine using the Validating-event with using an ErrorProvider (you can just drag it from the toolbox onto the form) to set an error message: it will be displayed as a (blinking) exclamation mark in a red triangle.
An ErrorProvider can also block any submit-actions.
Alternatively you can also use Validating event of the text box.
private void textBox1_Validating( object sender, CancelEventArgs e )
{
if ( textBox1.Text == "3" )
e.Cancel = true;
}
The text-box wont loose focus until it receives a valid input.