[TabControl][Tips] まとめ

これまでに紹介したTabControlのTipsは下記の通りです。

  1. タブページを追加する
  2. タブ数を取得する
  3. 選択されているタブのインデックスを取得する
  4. 選択されているタブを削除する
  5. すべてのタブを削除する
  6. タブを複数行表示する
  7. タブの表示位置を設定する

[TabControl][Tips] タブの表示位置を設定する

タブはTabControlの上、右、下、左に配置することが可能です。

配置位置を設定する場合は、AlignmentプロパティTabAlignment列挙体の値を指定します。

TabAlignment列挙体
メンバ名 説明
Top タブを上部に配置
Right タブを右部に配置
Bottom タブを下部に配置
Left タブを左部に配置

下記はタブの配置位置を設定する例です。

チェックされたラジオボタンの内容で配置位置を設定します。

VBの例

' ラジオボタンのチェック変更時の処理
Private Sub rdoTabAlignment_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rdoTop.CheckedChanged, rdoRight.CheckedChanged, rdoLeft.CheckedChanged, rdoBottom.CheckedChanged
    If rdoTop.Checked = True Then
        '★★★タブを上に配置する★★★
        TabControl1.Alignment = TabAlignment.Top
    ElseIf rdoRight.Checked = True Then
        '★★★タブを右に配置する★★★
        TabControl1.Alignment = TabAlignment.Right
    ElseIf rdoBottom.Checked = True Then
        '★★★タブを下に配置する★★★
        TabControl1.Alignment = TabAlignment.Bottom
    Else
        '★★★タブを左に配置する★★★
        TabControl1.Alignment = TabAlignment.Left
    End If
End Sub

C#の例

// ラジオボタンのチェック変更時の処理
private void rdoTabAlignment_CheckedChanged(object sender, EventArgs e)
{
    if ( rdoTop.Checked == true )
    {
        // ★★★タブを上に配置する★★★
        tabControl1.Alignment = TabAlignment.Top;
    }
    else if ( rdoRight.Checked == true )
    {
        // ★★★タブを右に配置する★★★
        tabControl1.Alignment = TabAlignment.Right;
    }
    else if ( rdoBottom.Checked == true )
    {
        // ★★★タブを下に配置する★★★
        tabControl1.Alignment = TabAlignment.Bottom;
    }
    else
    {
        // ★★★タブを左に配置する★★★
        tabControl1.Alignment = TabAlignment.Left;
    }
}

[TabControl][Tips] タブを複数行表示する


非常に多くのタブがある場合は複数行表示にすると見やすくなります。

タブを複数行表示するにはMultilineプロパティにTrueを設定します。

下記はタブ複数行表示する例です。

チェックボックスの状態で、タブの複数行表示/非表示を切り替えます。

VBの例

' [タブを複数行表示する]チェック変更時の処理
Private Sub chkTabMultiline_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkTabMultiline.CheckedChanged
    '「タブを複数行表示する」チェック時
    If chkTabMultiline.Checked = True Then
        '★★★タブを複数行表示にする★★★
        TabControl1.Multiline = True
    Else
        TabControl1.Multiline = False
    End If
End Sub

C#の例

// [タブを複数行表示する]チェック変更時の処理
private void chkTabMultiline_CheckedChanged(object sender, EventArgs e)
{
    // 「タブを複数行表示する」チェック時
    if (chkTabMultiline.Checked == true)
    {
        // ★★★タブを複数行表示にする★★★
        tabControl1.Multiline = true;
    }
    else
    {
        tabControl1.Multiline = false;
    }
}

[TabControl][Tips] すべてのタブを削除する

表示されているすべてのタブを削除するには、TabPagesプロパティClearメソッドを実行します。

下記はすべてのタブを削除する例です。

[すべてのタブを削除]ボタンがクリックされると現在表示されているタブすべてを削除します。

VBの例

' [すべてのタブを削除]ボタンクリック時の処理
Private Sub btnAddTabPage_Click(sender As System.Object, e As System.EventArgs) Handles btnAddTabPage.Click
    '★★★表示されているタブをすべて削除する★★★
    TabControl1.TabPages.Clear()
End Sub

C#の例

// [すべてのタブを削除]ボタンクリック時の処理
private void btnAddTabPage_Click(object sender, EventArgs e)
{
    // ★★★表示されているタブをすべて削除する★★★
    tabControl1.TabPages.Clear();
}

[TabControl][Tips] 選択されているタブを削除する

選択されているタブを削除するにはTabPagesプロパティRemoveAtメソッドを使用します。

RemoveAtメソッドの引数には削除するタブのインデックスを指定します。

下記は選択されているタブを削除する例です。

[選択されているタブを削除]ボタンが押されると現在選択されているタブのインデックスを取得して削除を行います。

VBの例

' [選択されているタブを削除]ボタンクリック時の処理
Private Sub btnAddTabPage_Click(sender As System.Object, e As System.EventArgs) Handles btnAddTabPage.Click
    '選択されているタブのインデックスを取得する
    Dim index As Integer = TabControl1.SelectedIndex

    '選択されているタブがあるか?
    If index > -1 Then
        '★★★選択されているタブを削除する★★★
        TabControl1.TabPages.RemoveAt(index)
    End If
End Sub

C#の例

// [選択されているタブを削除]ボタンクリック時の処理
private void btnAddTabPage_Click(object sender, EventArgs e)
{
    // 選択されているタブのインデックスを取得する
    int index = tabControl1.SelectedIndex;

    // 選択されているタブがあるか?
    if (index > -1)
    {
        // ★★★選択されているタブを削除する★★★
        tabControl1.TabPages.RemoveAt(index);
    }
}