以编程方式将焦点设置为Windows Phone中的TextBox

Igo*_*man 3 c# xaml windows-phone-7 windows-phone-8

在Windows Phone应用程序中,我有一个TextBox和一个Button.用户将一些文本写入TextBox并点击Button,TextBox中的文本将添加到列表中.点击按钮后,TextBox失去焦点.

我想要做的是在点击按钮后将焦点设置回TextBox,这样用户就可以继续编写另一个文本,而无需点击TextBox.

我尝试Focus()在Button处理程序中调用TextBox 的方法,但这不起作用.是否还有另一种方法可以做到这一点?

jim*_*zer 5

单击按钮时尝试添加bollean flag = true.然后在事件上检查此标志OnTextBoxLostFocus.

<TextBox x:Name="tb" Grid.Row="1" LostFocus="Tb_OnLostFocus"/>
<Button x:Name="btn" Click="Btn_OnClick" />

 public partial class MainPage : PhoneApplicationPage
{
    private bool flag;
    public MainPage()
    {
        InitializeComponent();
    }

    private void Btn_OnClick(object sender, RoutedEventArgs e)
    {
        flag = true;
        tb.Focus();
    }

    private void Tb_OnLostFocus(object sender, RoutedEventArgs e)
    {
        if (!flag) return;
        tb.Focus();
        flag = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

希望它的帮助.


lcc*_*mpn 5

我尝试了很多解决方案,但这是唯一适合我的解决方案(Windows Phone 8.1 应用程序)。首先捕获 TextBox 的Loaded事件,然后调用Focus(FocusState.Keyboard).

private void myTextBox_Loaded(object sender, RoutedEventArgs e)
{
    myTextBox.Focus(FocusState.Keyboard);
}
Run Code Online (Sandbox Code Playgroud)