我有一个带有两个标签(A,B)的WPF标签控件。由于TabItem上没有Clicked
事件,因此我在标签B上添加了previewMouseDown
事件,并显示messageBox
。但是,在我关闭messageBox后,我的应用程序将无法导航到选项卡B.任何人都可以帮助我吗?
C#代码段:
private void MyTabB_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Please login");
}
答案 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时更改。