在我的WindowsPhone应用程序中,我有一个需要在给定时间获得焦点的文本框。到目前为止我尝试过的:
textBox1.Focus();
textBox1.UpdateLayout();
textBox1.Focus();
textBox1.IsTabStop = true;
textBox1.UpdateLayout();
textBox1.Focus();
textBox1.IsTabStop = true;
textBox1.Focus();
似乎没什么用。在模拟器中,当调用Focus()
方法时,键盘开始上升,但随后崩溃。 TextBox在属性中将IsTabStop
设置为true
。
答案 0 :(得分:6)
这有帮助吗?
this.ActiveControl = textBox1;
答案 1 :(得分:3)
这似乎是一个Silverlight错误。我在TextChanged
上使用了TextBox
事件,并在其中设置了Focus()
。有点丑陋的解决方法,但它对我有用。如果有人有其他解决方案,请发布。
答案 2 :(得分:3)
如果您想要选择文本框而无需单击它(如果这是您的焦点意思),请尝试:
textBox1.Select();
答案 3 :(得分:2)
即使我已尝试过上述所有解决方案,但对我不起作用。最后,我试着使用以下内容,它起作用了。
private void txtBox_LayoutUpdated(object sender, EventArgs e)
{
txtBox.Focus();
}
答案 4 :(得分:0)
您可以通过以编程方式为焦点完成此操作。这可以通过 调用其Focusmethod,尽管在某些条件下此调用可能会失败(并返回false)。 例如,您无法从页面的构造函数设置焦点控件;太早了。您可以, 但是,从页面的Loadedevent中调用它。
答案 5 :(得分:0)
如果这是在运行时中创建的文本框,如下所示:
TextBox TextBox1 = new TextBox();
TextBox1.Name = "TextBox1";
然后添加此行
TextBox1.Loaded += new RoutedEventHandler(TextBox1_Loaded);
然后还添加以下事件:
private void TextBox1_Loaded(object sender, RoutedEventArgs e)
{
((TextBox)sender).Focus();
}
答案 6 :(得分:0)
只需在Form_Activated时间设置任何控件的焦点属性..
private void Form_Activated(Object sender, EventArgs e){
Textbox.Focus();
}
答案 7 :(得分:0)
这可能有点晚了几年但是在Windows Phone 8.1开发环境中玩了之后我找到了解决方案:
TextBox.Focus(FocusState.Keyboard);
您需要通过FocusState类传递FocusState类型。
答案 8 :(得分:0)
它为我工作了 this.YourTextbox.TabIndex = 0;
答案 9 :(得分:0)
如果我们有两个文本框 EXP:
txtPrincipal
txtPrincipal_Contact
如果想从txtPrincipal
移至txtPrincipal_Contact
我们需要在当前文本框exp的leave事件中编写带焦点函数的第二个文本框名称:
enter image description here
private void txtPrincipal_Leave(object sender, EventArgs e)
{
txtPrincipal_Contact.Focus();
}
答案 10 :(得分:0)
花了好几个小时进行调试后,我找到了solution
await Task.Delay(100);
tbInput.Focus(FocusState.Programmatic);