按Tab键(.net 3.5)时使用Control.Focus()跳转Tab键顺序

时间:2011-05-05 17:38:50

标签: c# wpf windows .net-3.5 focus

我有三个文本框:

<TextBox Name="textBox1" LostFocus="textBox1_LostFocus" />
<TextBox Name="textBox2" />
<TextBox Name="textBox3" />

有了这个事件:

private void textBox1_LostFocus(object sender, RoutedEventArgs e)
{
    if (textBox1.Text.Equals("some value"))
        textBox3.Focus();
}

当我按下TAB键并将焦点放在textBox1上时,焦点将转到textBox2,与textBox3.Focus()无关。 我怎么能真正关注textBox3?

1 个答案:

答案 0 :(得分:1)

经过一些测试后,我发现你正在抓错事件。将XAML代码的第一行更改为以下

<TextBox Name="textBox1" LostKeyboardFocus="textBox1_LostKeyboardFocus" />

并实施以下方法

private void textBox1_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) {

    if (textBox1.Text.Equals("some value")) {
        Keyboard.Focus(textBox3);
    }
}

窗口中的焦点已正确设置为所需的控件。