Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改TabControl选择时聚焦文本框_C#_Wpf - Fatal编程技术网

C# 更改TabControl选择时聚焦文本框

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

我有以下问题:

我的TabControl中有两个选项卡,如果选择了第二个选项卡“TabControl1\u Products”,我想在“Products\u TextBox2”文本框中设置焦点。 我写了这段代码,理论上应该是可行的,但不知何故它不

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线程加载完成后立即在后台运行!