在选项卡的PreviewMouseDown事件上添加MessageBox后,Tab不会导航

时间:2013-01-09 10:21:15

标签: c# wpf messagebox

我有一个带有两个标签(A,B)的WPF标签控件。由于TabItem上没有Clicked事件,因此我在标签B上添加了previewMouseDown事件,并显示messageBox。但是,在我关闭messageBox后,我的应用程序将无法导航到选项卡B.任何人都可以帮助我吗?

C#代码段:

  private void MyTabB_PreviewMouseDown(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("Please login");
    }

1 个答案:

答案 0 :(得分:1)

您可以使用TabControlSelectionChanged事件。

由于您知道所选的登录选项卡说索引0,因此在MessageBox之后更改选定的选项卡,即类似

MyTabB_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
     TabControl tc= ((TabControl)sender;
     if(tc.SelectedIndex == tc.Items.IndexOf(A/*Login tab*/))
      {
         MessageBox.Show("Login")
         tc.SelectedIndex = tc.Items.IndexOf(B);
      }
}

这意味着无论何时选择A,您都会弹出MessageBox然后登录。

或者,为什么不在A中放置一个按钮或任何带有ClickedEvent的控件,然后单击tc.SelectedIndex时更改。