0

2 つのタブ (A、B) を持つ WPF タブ コントロールがあります。ClickedTabItem には Event がないためpreviewMouseDown、Tab B にイベントを追加すると amessageBoxが表示されます。ただし、メッセージボックスを閉じた後、アプリケーションはタブ B に移動しません。誰でも助けてもらえますか?

C# コード スニペット:

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

1 に答える 1

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 がポップアップしてログインすることを意味します。

または、 ClickedEvent を含むボタンまたはコントロールを A に配置してから、クリックすると tc.SelectedIndex が変更されます。

于 2013-01-09T11:08:04.250 に答える