Home > DeveloperSection > Forums > Keep Focus back to the previous Textbox on failed validation
Ankit Singh

Total Post:341

Posted on    March-26-2014 3:25 AM

 C# C# 

 1 Reply(s)
 869  View(s)
Rate this:
I want Focus back to the previous Textbox if validation gets failed. I am validating the Textbox control value on lostFocus event. 

Need some help.

Pravesh Singh

Total Post:411

Posted on    March-26-2014 4:10 AM

Hi Ankit,

If you attempt to focus an element inside its own LostFocus handler you will face a StackOverflowException, I'm not sure about the root cause (I suspect the focus kind of bounces around) but there is an easy workaround: dispatch it.

private void TextBox_LostFocus(object sender, RoutedEventArgs e)


    var element = (sender as TextBox);

    if (!theTextBoxWasValidated())


        // doing this would cause a StackOverflowException

        // element.Focus();

        var restoreFocus = (System.Threading.ThreadStart)delegate { element.Focus(); };




Through Dispatcher.BeginInvoke you make sure that restoring the focus doesn't get in the way of the in-progress loss of focus (and avoid the nasty exception you'd face otherwise)

Don't want to miss updates? Please click the below button!

Follow MindStick