Textbox LostFocus事件处理

时间:2016-06-11 12:41:03

标签: c# wpf events

我的文本框上有一个LostFocus事件,但通常按Tab键会发生什么,“LostFocus”事件会触发,下一个控件会获得焦点。我想继续关注文本框(假设发生输入错误)而不是将焦点移动到下一个控件。

我已经尝试设置e事件来处理,但没有任何改变。

private void phone(object sender, RoutedEventArgs e)
{
    TextBox text = (sender as TextBox);
    if (text.Text == "") return;
    else if (text.Text.Length > 10 || text.Text.Length < 10)
    {
        MessageBox.Show("Valid Input");
        select(sender);
    }
}

这是我正在尝试使用的事件,但正如我所说,焦点转移到下一个控件(这是错误的)。

2 个答案:

答案 0 :(得分:0)

这是一个合理的焦点变化,而不是键盘焦点更改。有关详细信息,请参阅UIElement.LostFocus Event

你应该尝试将焦点设置到文本框中,如下所示(假设txt1是文本框的id)

{"b":{"ba":"valBA","bb":"valBB","bc":"valBC"}}

答案 1 :(得分:-1)

您应该使用KeyPressed事件! 这样,当您的文本框具有焦点并且用户输入密钥时,您可以检查它是否是Tab键。如果是Tab键,则可以简单地重新设置文本框焦点。更多信息:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress(v=vs.110).aspx

相关问题