タブを削除するにはいくつかの方法があります。
1. タブを直接指定して削除する
タブを直接指定して削除を行う場合には Items プロパティ の Remove メソッドを使用します。
引数には、削除したいタブのインスタンスを指定します。
2. インデックスを指定して削除する
インデックスを指定して削除を行う場合には Items プロパティ の RemoveAt メソッドを使用します。
引数には削除するタブのインデックス番号(先頭のタブから0,1,2と数える)を指定します。
3. すべてのタブを削除する
すべてのタブを削除する場合には Items プロパティ の Clear メソッドを使用します。
下記は、上記のメソッドを使用してタブを削除する例です。
XAMLの例
<StackPanel Height="241">
<StackPanel Orientation="Horizontal">
<Button Name="btnLastTabDel" Content="最後のタブを削除する" Width="144" />
<Button Name="btnTabItem2Del" Content="TabItem2を削除" Height="23" Width="115" />
<Button Name="btnAllTabDel" Content="全タブを削除" Height="23" Width="89" />
</StackPanel>
<TabControl Name="TabControl1" Margin="0,3,0,0" Height="140">
<TabItem Header="TabItem1" Name="TabItem1">
<Grid />
</TabItem>
<TabItem Header="TabItem2" Name="TabItem2">
<Grid />
</TabItem>
<TabItem Header="TabItem3" Name="TabItem3">
<Grid />
</TabItem>
<TabItem Header="TabItem4" Name="TabItem4">
<Grid />
</TabItem>
<TabItem Header="TabItem5" Name="TabItem5">
<Grid />
</TabItem>
</TabControl>
</StackPanel>
VBの例
' [最後のタブを削除する]ボタンクリック時の処理
Private Sub btnLastTabDel_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnLastTabDel.Click
'最後のタブのインデックスを取得
Dim lastIndex As Integer = TabControl1.Items.Count - 1
If lastIndex = -1 Then Return
'最後のタブを削除
TabControl1.Items.RemoveAt(lastIndex)
End Sub
' [TabItem2を削除]ボタンクリック時の処理
Private Sub btnTabItem2Del_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnTabItem2Del.Click
'TabItem2を削除
TabControl1.Items.Remove(TabItem2)
End Sub
' [全タブを削除]ボタンクリック時の処理
Private Sub btnAllTabDel_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnAllTabDel.Click
'全タブを削除
TabControl1.Items.Clear()
End Sub
C#の例
// [最後のタブを削除する]ボタンクリック時の処理
private void btnLastTabDel_Click(object sender, RoutedEventArgs e)
{
// 最後のタブのインデックスを取得
int lastIndex = tabControl1.Items.Count - 1;
if (lastIndex == -1) return;
// 最後のタブを削除
tabControl1.Items.RemoveAt(lastIndex);
}
// [TabItem2を削除]ボタンクリック時の処理
private void btnTabItem2Del_Click(object sender, RoutedEventArgs e)
{
// TabItem2 を削除
tabControl1.Items.Remove(tabItem2);
}
// [全タブを削除]ボタンクリック時の処理
private void btnAllTabDel_Click(object sender, RoutedEventArgs e)
{
// 全タブを削除
tabControl1.Items.Clear();
}
