简体   繁体   English

如何从 TabControl 获取以前选择的 TabItem 索引?

[英]How to get previous selected TabItem Index from TabControl?

Following xaml code for your testing needs.以下 xaml 代码可满足您的测试需求。

<Window x:Class="MainWindow"  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="350">
<DockPanel>
    <TabControl x:Name="TabControl" DockPanel.Dock="top">
        <TabItem x:Name="TabItem1" Header="London">
            <Label Content="London" />
        </TabItem>
        <TabItem x:Name="TabItem2" Header="Paris">
            <Label Content="Paris" />
        </TabItem>
        <TabItem x:Name="TabItem3" Header="Tokyo">
            <Label Content="Tokyo" />
        </TabItem>
        <TabItem x:Name="TabItem4" Header="Istanbul">
            <Label Content="Istanbul" />
        </TabItem>
    </TabControl>
</DockPanel>
</Window>

How to get previous TabItem Index from TabControl and show in the MessageBox?如何从 TabControl 获取以前的 TabItem 索引并显示在 MessageBox 中?

I need vb.net code running from code behind.我需要从后面的代码运行的 vb.net 代码。

RemovedItems is an IList property in the SelectionChangedEventArgs that holds the items that were unselected since the last time the SelectionChanged event occurred. RemovedItemsSelectionChangedEventArgs中的一个IList属性,它保存自上次发生SelectionChanged事件以来未选择的项目。 You could check it each time the SelectionChanged of the TabControl event occurred:每次发生TabControl事件的SelectionChanged ,您都可以检查它:

private void TabControl_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.RemovedItems.Count > 0)
        {
            var oldTabItem = e.RemovedItems[0] as TabItem;
        }
    }

xaml: xml:

 <DockPanel>
        <TabControl x:Name="TabControl" DockPanel.Dock="top" SelectionChanged="TabControl_OnSelectionChanged" > ..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM