I was able to duplicate your problem, It appears that the focus in not being assigned to your listbox and is remaining in the TextBox. I was able to get it to work by using the textbox's MoveFocus Method. Though this is dependent on the actual tab order of your controls.
txt.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
In reference to your comment, I did notice that and worked around it by making sure that I set the Listbox's selectedIndex to -1
lst.SelectedIndex = -1;