2012-01-18 72 views
0

当WPF TabControl具有焦点时,可以使用箭头键切换活动选项卡。但是,在到达最终选项卡后,它会再次循环回第一个选项卡。我想阻止这种情况发生,因此用户可以在应用程序中获得更多应该做的事情。 任何想法?谢谢。TabControl循环回第一个选项卡。这可以防止吗?

回答

0

我试过这个使用SelectionChanged事件的相当严厉的方法。除了在“loginTab”条目上仍然显示虚线焦点指示符,即使TabControl继续按照预期显示“lastTab”,它也能完成这项工作。 Focus()调用不关注最后一个选项卡。

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (e.Source == wizardTabs && e.RemovedItems.Count != 0 && e.AddedItems.Count != 0) 
     { 
      TabItem fromItem = e.RemovedItems[0] as TabItem; 
      TabItem toItem = e.AddedItems[0] as TabItem; 

      if (fromItem.Name == "lastTab" && toItem.Name == "firstTab") 
      { 
       e.Handled = true; 
       wizardTabs.SelectedItem = fromItem; 
       fromItem.Focus(); 
      } 
     } 
    } 
+0

您可能想编辑此答案并删除问题部分以防止其被删除。在该特定问题上创建一个新问题。 – Till 2012-01-19 14:45:16

0

如果需要按特定顺序完成这些步骤,请不要使用选项卡控件。

您应该在这种情况下使用向导界面。

另一方面,如果步骤不需要按照特定的顺序完成,我不知道为什么要给用户那种印象。

+0

由于没有官方的“向导控制”,大多数网站都建议用户创建自己的向导,以他们想要的方式工作。这就是我想要做的,作为其中的一部分,我想阻止从最后一个选项卡到第一个选项卡的循环。这就是为什么。另外,我的应用程序不是官方的向导 - 用户可能希望在选项卡之间跳转以输入所需的信息。 – Jarvis 2012-01-18 19:58:22

0

您是否尝试将附加属性KeyboardNavigation.DirectionalNavigation设置为TabControlOnce

+0

感谢您的建议,但没有没有工作。 – Jarvis 2012-01-19 14:15:48

相关问题