views:

1841

answers:

3

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 missing

For example :

In textbox i have entered 3 and click tab : I need to display message as "Number is not in order , number "1" and "2" is missing "

+4  A: 

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.

Lennaert
A: 

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.

tzup
Be careful with this kind of code, if you use this on multiple TextBoxes, you will create a loop of Focus you won't be able to break... An ErrorProvider is much better in this case.
Julien Poulin
A: 

Try using a Masked TextBox control and set a custom property for this type of field validation.

transmogrify