C# 更改TabControl选择时聚焦文本框
我有以下问题: 我的TabControl中有两个选项卡,如果选择了第二个选项卡“TabControl1\u Products”,我想在“Products\u TextBox2”文本框中设置焦点。 我写了这段代码,理论上应该是可行的,但不知何故它不C# 更改TabControl选择时聚焦文本框,c#,wpf,C#,Wpf,我有以下问题: 我的TabControl中有两个选项卡,如果选择了第二个选项卡“TabControl1\u Products”,我想在“Products\u TextBox2”文本框中设置焦点。 我写了这段代码,理论上应该是可行的,但不知何故它不 private void TabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (TabControl1_Products.IsSelecte
private void TabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (TabControl1_Products.IsSelected)
{
this.Products_TextBox2.Focus();
}
}
我检查了程序是否输入了if查询,但它不会将焦点更改为文本框您可以使用Dispatcher:
Dispatcher.BeginInvoke(DispatcherPriority.Background,new Action(() => thi.Products_TextBox2.Focus()));
您可以使用调度器:
Dispatcher.BeginInvoke(DispatcherPriority.Background,new Action(() => thi.Products_TextBox2.Focus()));
您可以使用调度器:
Dispatcher.BeginInvoke(DispatcherPriority.Background,new Action(() => thi.Products_TextBox2.Focus()));
您可以使用调度器:
Dispatcher.BeginInvoke(DispatcherPriority.Background,new Action(() => thi.Products_TextBox2.Focus()));
谢谢,现在可以用了!你能解释一下,为什么这是有效的,而我的版本是无效的吗?我不确定,如果我能正确解释的话:UI在一个线程上运行,在调用Focus()时没有完全加载,所以Focus()调用被忽略。使用Dispatcher,您可以派生出一个新线程,它将在主UI线程加载完成后立即在后台运行!谢谢,现在可以用了!你能解释一下,为什么这是有效的,而我的版本是无效的吗?我不确定,如果我能正确解释的话:UI在一个线程上运行,在调用Focus()时没有完全加载,所以Focus()调用被忽略。使用Dispatcher,您可以派生出一个新线程,它将在主UI线程加载完成后立即在后台运行!谢谢,现在可以用了!你能解释一下,为什么这是有效的,而我的版本是无效的吗?我不确定,如果我能正确解释的话:UI在一个线程上运行,在调用Focus()时没有完全加载,所以Focus()调用被忽略。使用Dispatcher,您可以派生出一个新线程,它将在主UI线程加载完成后立即在后台运行!谢谢,现在可以用了!你能解释一下,为什么这是有效的,而我的版本是无效的吗?我不确定,如果我能正确解释的话:UI在一个线程上运行,在调用Focus()时没有完全加载,所以Focus()调用被忽略。使用Dispatcher,您可以派生出一个新线程,它将在主UI线程加载完成后立即在后台运行!